From 17b71f1a2d7929728812049de05e5872e24d6d28 Mon Sep 17 00:00:00 2001 From: "Terry A. Davis" Date: Fri, 15 Mar 2013 07:44:41 +0100 Subject: [PATCH] TempleOSTS_130315.ISO --- 0000Boot/0000Kernel.BIN.C | Bin 0 -> 222896 bytes 0000Boot/0000OSMain.BIN.C | Bin 217760 -> 0 bytes 0000Boot/BootCD.BIN | Bin 2044 -> 2041 bytes 0000Boot/BootMHD2.BIN.C | Bin 578 -> 582 bytes SparrowOS/Accts/Adam3cSnd.CPP | 11 - SparrowOS/Accts/TS/Adam3bPkgs.CPP | 9 - SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP | 20 - SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP | 34 - .../Accts/TS/TAD/MusicOrgan/inwardly.CPP | 20 - SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP | 22 - SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP | 21 - .../Accts/TS/TAD/MusicOrgan/restless.CPP | 19 - .../Accts/TS/TAD/MusicOrgan/signifies.CPP | 20 - SparrowOS/Accts/TS/TAD/Registry.CPP | 8 - SparrowOS/Accts/TS/TAD/Test.CPP | 53 - SparrowOS/Accts/TS/TSIDComputer.CPP | 7 - SparrowOS/Accts/TS/TSIDDft.CPP | 7 - SparrowOS/Accts/TS/Wb2/Hymns.TXT | 81 - SparrowOS/Accts/TS/Wb2/LineCnt.TXT | 721 -- SparrowOS/Accts/TS/Wb2/Menu.BMP | Bin 153718 -> 0 bytes SparrowOS/Accts/TS/Wb2/ScreenShots.TXT | 14 - SparrowOS/Accts/TS/Wb2/SparrowOS.BMP | Bin 153718 -> 0 bytes SparrowOS/Accts/TS/Wb2/Tanks.BMP | Bin 153718 -> 0 bytes SparrowOS/Accts/TS/Wb2/index.TXT | 71 - SparrowOS/Adam/Gr/GrChar.CPP | 106 - SparrowOS/Adam/Merge.CPP | 88 - SparrowOS/Apps/AfterEgypt/AENotes.TXT | 7 - SparrowOS/Apps/AfterEgypt/Load.CPP | 16 - SparrowOS/Apps/AfterEgypt/Run.CPP | 3 - SparrowOS/Apps/GrModels/Load.CPP | 3 - SparrowOS/Apps/GrModels/Run.CPP | 2 - SparrowOS/Apps/KeepAway/Load.CPP | 1 - SparrowOS/Apps/KeepAway/Run.CPP | 2 - SparrowOS/Apps/Logic/Load.CPP | 1 - SparrowOS/Apps/Logic/Run.CPP | 2 - .../Apps/MusicOrgan/Examples/feigned.CPP | 20 - SparrowOS/Apps/MusicOrgan/Examples/free.CPP | 34 - .../Apps/MusicOrgan/Examples/inwardly.CPP | 20 - .../Apps/MusicOrgan/Examples/keeping.CPP | 22 - SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP | 21 - .../Apps/MusicOrgan/Examples/restless.CPP | 19 - .../Apps/MusicOrgan/Examples/signifies.CPP | 20 - SparrowOS/Apps/MusicOrgan/Load.CPP | 7 - SparrowOS/Apps/MusicOrgan/Run.CPP | 3 - SparrowOS/Apps/Pilgrims/Load.CPP | 7 - SparrowOS/Apps/Pilgrims/Run.CPP | 2 - SparrowOS/Apps/Span/Load.CPP | 10 - SparrowOS/Apps/Span/Run.CPP | 3 - SparrowOS/Apps/Tanks/Load.CPP | 1 - SparrowOS/Apps/Tanks/Run.CPP | 2 - SparrowOS/Apps/TimeClock/Load.CPP | 1 - SparrowOS/Apps/Timeout/Load.CPP | 5 - SparrowOS/Apps/Timeout/Run.CPP | 2 - SparrowOS/Apps/Vocabulary/Load.CPP | 5 - SparrowOS/Apps/Vocabulary/Run.CPP | 2 - SparrowOS/Apps/X-Caliber/Load.CPP | 8 - SparrowOS/Apps/X-Caliber/Run.CPP | 2 - SparrowOS/Compiler/Compiler.BIN | Bin 266262 -> 0 bytes SparrowOS/Compiler/Compiler.MAP | 762 -- SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP | 9 - SparrowOS/Demo/AcctExample/TAD/Registry.CPP | 8 - SparrowOS/Demo/AcctExample/TSIDComputer.CPP | 7 - SparrowOS/Demo/AcctExample/TSIDDft.CPP | 7 - SparrowOS/Demo/Dsk/OrderedIO.CPP | 17 - SparrowOS/Demo/Graphics/Blink.CPP | 34 - SparrowOS/Demo/Graphics/Logo.CPP | Bin 33142 -> 0 bytes SparrowOS/Demo/Graphics/SpritePlot.CPP | Bin 33670 -> 0 bytes SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ | 13 - SparrowOS/Demo/OldSchool/ReadMe.TXT | 11 - .../Demo/WebLogExample/access_090509.LOG | 756 -- .../Demo/WebLogExample/access_090510.LOG | 788 -- SparrowOS/Doc/ChangeLog.TXT | 81 - SparrowOS/Doc/Char.TXT | 16 - SparrowOS/Doc/Confuse.TXT | 49 - SparrowOS/Doc/Constitution.TXT | 34 - SparrowOS/Doc/Ctrls.TXT | 3 - SparrowOS/Doc/Customize.TXT | 9 - SparrowOS/Doc/CutCorners.TXT | 11 - SparrowOS/Doc/D3.TXT | 4 - SparrowOS/Doc/Define.TXT | 6 - SparrowOS/Doc/DemoIndex.TXT | 198 - SparrowOS/Doc/Doc.TXT | 8 - SparrowOS/Doc/GrSprite.TXT | 8 - SparrowOS/Doc/Grub.TXT | 24 - SparrowOS/Doc/Hash.TXT | 4 - SparrowOS/Doc/HelpIndex.TXT | 183 - SparrowOS/Doc/Lex.TXT | 4 - SparrowOS/Doc/MultiCore.TXT | 14 - SparrowOS/Doc/MultiTasking.TXT | 22 - SparrowOS/Doc/Mysteries.TXT | 67 - SparrowOS/Doc/NamedFrame.TXT | 2 - SparrowOS/Doc/ODE.TXT | 7 - SparrowOS/Doc/Snd.TXT | 6 - SparrowOS/Doc/Splash.TXT | 31 - SparrowOS/Doc/TSZ.TXT | 38 - SparrowOS/Doc/TimeCycles.TXT | 3 - SparrowOS/Doc/TimeDate.TXT | 5 - SparrowOS/Doc/TrivialSolutions.TXT | 20 - SparrowOS/Doc/Upgrade.TXT | 8 - SparrowOS/Doc/Welcome.TXT | 67 - SparrowOS/OSMain/Adam1.CPP | 12 - SparrowOS/OSMain/Date.CPP | 197 - SparrowOS/OSMain/Dsk/DskAddDev.CPP | 361 - SparrowOS/OSMain/OSMain.MAP | 3443 ------- SparrowOS/OSMain/Static.HPP | 14 - SparrowOS/ReadMe.TXT | 20 - {SparrowOS => TempleOS}/Accts/Adam3.CPP | 0 .../Accts/Adam3aLocalize.CPP | 0 {SparrowOS => TempleOS}/Accts/Adam3bPkgs.CPP | 10 +- TempleOS/Accts/Adam3cSnd.CPP | 10 + .../Accts/Adam3dKeyPlugIns.CPP | 10 +- .../Accts/Adam3eWrappers.CPP | 8 +- {SparrowOS => TempleOS}/Accts/Adam3fSys.CPP | 8 +- {SparrowOS => TempleOS}/Accts/DoItOnce.CPP | 6 +- .../Accts/Install/Adam3fSys.CPP | 4 +- .../Accts/Install/DoItOnce.CPP | 119 +- .../Accts/PersonalMenu.TXT | Bin 51803 -> 53355 bytes .../Accts/PersonalNotes.TXT | 0 .../Accts/SafeMode/Adam3.CPP | 0 .../Accts/SafeMode/Adam3cSnd.CPP | 0 .../Accts/SafeMode/Adam3fSys.CPP | 4 +- .../Accts/SafeMode/DoItOnce.CPP | 2 +- TempleOS/Accts/TS/Adam3.CPP | 13 + TempleOS/Accts/TS/Adam3bPkgs.CPP | 9 + .../Accts/TS}/Adam3dKeyPlugIns.CPP | 32 +- .../Accts/TS/Adam3eWrappers.CPP | 2 +- .../Accts/TS/Adam3fSys.CPP | 19 +- {SparrowOS => TempleOS}/Accts/TS/DoItOnce.CPP | 4 +- .../Accts/TS/PersonalMenu.TXT | Bin 51890 -> 52801 bytes .../Accts/TS}/TAD/Adam3aLocalize.CPP | 2 +- .../Accts/TS}/TAD/Archive/FileSysISO3.CPP | 20 +- .../Accts/TS}/TAD/Archive/Logo.TXT | Bin 33188 -> 33204 bytes TempleOS/Accts/TS/TAD/Archive/Marketing.TXT | 21 + .../Accts/TS}/TAD/Archive/USB.CPP | 2 +- .../Accts/TS}/TAD/Archive/USB1a.CPP | 12 +- TempleOS/Accts/TS/TAD/MakeDistro.CPP | 54 + .../Accts/TS/TAD/MusicOrgan/abiding.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan}/abyss.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/almighty.CPP | 0 .../Accts/TS/TAD/MusicOrgan/appreciate.CPP | 0 .../Accts/TS/TAD/MusicOrgan/awake.CPP | 7 +- .../TS/TAD/MusicOrgan/battlehymnsolo.CPP | Bin .../Accts/TS/TAD/MusicOrgan}/bedewed.CPP | Bin 2044 -> 1980 bytes .../Accts/TS/TAD/MusicOrgan/blinded.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/born.CPP | 0 .../Accts/TS/TAD/MusicOrgan/childish.CPP | 0 .../Accts/TS/TAD/MusicOrgan/compassions.CPP | 0 .../Accts/TS/TAD/MusicOrgan/completed.CPP | Bin .../Accts/TS/TAD/MusicOrgan/cosam.CPP | 0 .../Accts/TS/TAD/MusicOrgan/depending.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan}/despairing.CPP | 4 +- .../Accts/TS/TAD/MusicOrgan/determination.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/dialogue.CPP | Bin 3382 -> 3381 bytes .../Accts/TS/TAD/MusicOrgan/disputing.CPP | 0 .../Accts/TS/TAD/MusicOrgan/doing.CPP | Bin 2589 -> 2639 bytes .../Accts/TS/TAD/MusicOrgan/downfall.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/dream.CPP | 4 +- .../Accts/TS/TAD/MusicOrgan/efforts.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/elijah.CPP | Bin 17661 -> 17596 bytes .../Accts/TS/TAD/MusicOrgan/environeth.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/epicurus.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/exalt.CPP | 0 .../Accts/TS/TAD/MusicOrgan/exiled.CPP | 0 TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP | 20 + .../Accts/TS/TAD/MusicOrgan/expedition.CPP | Bin .../Accts/TS/TAD/MusicOrgan}/fairness.CPP | 7 +- TempleOS/Accts/TS/TAD/MusicOrgan/feigned.CPP | 25 + .../Accts/TS/TAD/MusicOrgan/finger.CPP | Bin 3968 -> 3966 bytes .../Accts/TS/TAD/MusicOrgan/first.CPP | Bin 1885 -> 1821 bytes .../Accts/TS/TAD/MusicOrgan}/fishermen.CPP | Bin 2038 -> 2355 bytes .../Accts/TS/TAD/MusicOrgan/fixing.CPP | 0 .../Accts/TS/TAD/MusicOrgan/flung.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/fog.CPP | Bin 1572 -> 1571 bytes .../Accts/TS/TAD/MusicOrgan/forasmuch.CPP | Bin .../Accts/TS/TAD/MusicOrgan/freaks.CPP | 0 TempleOS/Accts/TS/TAD/MusicOrgan/free.CPP | 152 + .../Accts/TS/TAD/MusicOrgan/furnishing.CPP | Bin 5274 -> 5273 bytes .../Accts/TS/TAD/MusicOrgan}/good.CPP | Bin 1149 -> 1147 bytes .../Accts/TS/TAD/MusicOrgan/gutenberg.CPP | Bin 2093 -> 2026 bytes .../Accts/TS/TAD/MusicOrgan}/happy.CPP | Bin 1676 -> 1675 bytes .../Accts/TS/TAD/MusicOrgan/honestly.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/hope.CPP | Bin 1668 -> 1667 bytes .../Accts/TS/TAD/MusicOrgan/image.CPP | 7 +- TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP | Bin 0 -> 2495 bytes TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP | Bin 0 -> 2538 bytes .../Accts/TS/TAD/MusicOrgan}/kept.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/limit.CPP | Bin 1464 -> 1463 bytes .../Accts/TS/TAD/MusicOrgan/mary.CPP | 0 .../Accts/TS/TAD/MusicOrgan/mightest.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/mildly.CPP | Bin 1905 -> 1838 bytes TempleOS/Accts/TS/TAD/MusicOrgan/myrrh.CPP | 20 + .../Accts/TS/TAD/MusicOrgan/nay.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/night.CPP | Bin 3355 -> 3354 bytes .../Accts/TS/TAD/MusicOrgan/o.CPP | 0 .../Accts/TS/TAD/MusicOrgan/partake.CPP | Bin .../Accts/TS/TAD/MusicOrgan/permitted.CPP | 0 .../Accts/TS/TAD/MusicOrgan/personal.CPP | 0 .../Accts/TS/TAD/MusicOrgan/population.CPP | 0 .../Accts/TS/TAD/MusicOrgan/proponent.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/prosper.CPP | Bin 5575 -> 5566 bytes TempleOS/Accts/TS/TAD/MusicOrgan/psalm.CPP | 25 + .../Accts/TS/TAD/MusicOrgan/purpose.CPP | Bin 4622 -> 4622 bytes .../Accts/TS/TAD/MusicOrgan/reasoning.CPP | 0 .../Accts/TS/TAD/MusicOrgan/reliance.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/reposes.CPP | 0 TempleOS/Accts/TS/TAD/MusicOrgan/restless.CPP | 29 + .../Accts/TS/TAD/MusicOrgan/rifled.CPP | 0 .../Accts/TS/TAD/MusicOrgan/risen.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/satisfaction.CPP | Bin 2664 -> 2585 bytes .../Accts/TS/TAD/MusicOrgan/scriptures.CPP | Bin .../Accts/TS/TAD/MusicOrgan/service.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/shield.CPP | Bin 2852 -> 2788 bytes .../Accts/TS/TAD/MusicOrgan/signifies.CPP | 31 + .../Accts/TS/TAD/MusicOrgan/silver.CPP | 0 .../Accts/TS/TAD/MusicOrgan/small.CPP | Bin 10740 -> 10737 bytes .../Accts/TS/TAD/MusicOrgan}/struggles.CPP | Bin 3081 -> 3080 bytes .../Accts/TS/TAD/MusicOrgan}/sustain.CPP | Bin 2832 -> 2831 bytes .../Accts/TS/TAD/MusicOrgan/teachings.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/thereupon.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/thither.CPP | 0 .../Accts/TS/TAD/MusicOrgan/twins.CPP | 0 .../Accts/TS/TAD/MusicOrgan/valued.CPP | Bin 1509 -> 1508 bytes .../Accts/TS/TAD/MusicOrgan}/vengeance.CPP | Bin 6567 -> 6496 bytes .../Accts/TS/TAD/MusicOrgan/verses.CPP | 11 + .../Accts/TS/TAD/MusicOrgan/villa.CPP | 0 .../Accts/TS/TAD/MusicOrgan}/wisdom.CPP | Bin 1671 -> 1669 bytes .../Accts/TS/TAD/MusicOrgan}/witherto.CPP | 7 +- .../Accts/TS/TAD/MusicOrgan/worship.CPP | 8 +- .../Accts/TS/TAD/MusicOrgan/yesterday.CPP | 20 + .../Accts/TS/TAD/MusicOrgan/you.CPP | 0 .../Accts/TS/TAD/MusicOrgan/zip.CPP | Bin 2508 -> 2454 bytes .../Accts/TS}/TAD/PersonalNotes.TXT | 51 +- TempleOS/Accts/TS/TAD/Registry.CPP | 13 + TempleOS/Accts/TS/TAD/Test.CPP | 2 + .../Accts/TS}/TSAdam.CPP | 365 +- .../Accts/TS/TSDistro.CPP | 314 +- TempleOS/Accts/TS/Wb2/Blog.TXT | 14 + TempleOS/Accts/TS/Wb2/Games.TXT | 81 + TempleOS/Accts/TS/Wb2/Hymns.TXT | 82 + TempleOS/Accts/TS/Wb2/LineCnt.TXT | 731 ++ TempleOS/Accts/TS/Wb2/Menu.BMP | Bin 0 -> 63780 bytes TempleOS/Accts/TS/Wb2/ScreenShots.TXT | 15 + TempleOS/Accts/TS/Wb2/Tanks.BMP | Bin 0 -> 90050 bytes TempleOS/Accts/TS/Wb2/TempleOS.BMP | Bin 0 -> 55340 bytes TempleOS/Accts/TS/Wb2/Tutorials.TXT | 67 + TempleOS/Accts/TS/Wb2/index.TXT | 82 + {SparrowOS => TempleOS}/Adam/Adam2.CPP | 31 +- {SparrowOS => TempleOS}/Adam/AdamExt.HPP | 12 +- {SparrowOS => TempleOS}/Adam/AutoFile2a.CPP | 2 +- {SparrowOS => TempleOS}/Adam/BinRep.CPP | 22 +- {SparrowOS => TempleOS}/Adam/Boot/BootCD.CPP | 12 +- {SparrowOS => TempleOS}/Adam/Boot/BootHD.CPP | 8 +- {SparrowOS => TempleOS}/Adam/Boot/BootMHD.CPP | 6 +- .../Adam/Boot/BootMHD2.CPP | 2 +- {SparrowOS => TempleOS}/Adam/Boot/InsBoot.CPP | 113 +- {SparrowOS => TempleOS}/Adam/Ctrls/Ctrls.CPP | 2 +- .../Adam/Ctrls/Ctrls2a.CPP | 0 .../Adam/Ctrls/CtrlsButton.CPP | 6 +- .../Adam/Ctrls/CtrlsSlider.CPP | 0 {SparrowOS => TempleOS}/Adam/Dbg2a.CPP | 157 +- {SparrowOS => TempleOS}/Adam/DevInfo.CPP | 124 +- {SparrowOS => TempleOS}/Adam/Diff.CPP | 108 +- {SparrowOS => TempleOS}/Adam/Doc/Doc.CPP | 17 +- {SparrowOS => TempleOS}/Adam/Doc/DocBible.CPP | 6 +- .../Adam/Doc/DocCodeTools.CPP | 17 +- {SparrowOS => TempleOS}/Adam/Doc/DocCtrlL.CPP | 22 +- {SparrowOS => TempleOS}/Adam/Doc/DocEd.CPP | 151 +- {SparrowOS => TempleOS}/Adam/Doc/DocFile.CPP | 10 +- .../Adam/Doc/DocHighlight.CPP | 2 +- {SparrowOS => TempleOS}/Adam/Doc/DocIDE.CPP | 56 +- {SparrowOS => TempleOS}/Adam/Doc/DocMacro.CPP | 0 {SparrowOS => TempleOS}/Adam/Doc/DocMain.CPP | 358 +- {SparrowOS => TempleOS}/Adam/Doc/DocNew.CPP | 21 +- TempleOS/Adam/Doc/DocOpt.CPP | 115 + {SparrowOS => TempleOS}/Adam/Doc/DocPlain.CPP | 4 +- {SparrowOS => TempleOS}/Adam/Doc/DocPopUp.CPP | 41 +- .../Adam/Doc/DocRecalc.CPP | 49 +- {SparrowOS => TempleOS}/Adam/Doc/DocTree.CPP | 0 {SparrowOS => TempleOS}/Adam/DocDefines.CPP | 18 +- {SparrowOS => TempleOS}/Adam/Dsk/ChkDsk.CPP | 12 +- {SparrowOS => TempleOS}/Adam/Dsk/Dsk2.CPP | 0 {SparrowOS => TempleOS}/Adam/Dsk/Dsk2a.CPP | 83 +- {SparrowOS => TempleOS}/Adam/Dsk/Dsk2b.CPP | 167 +- {SparrowOS => TempleOS}/Adam/Dsk/DskCDDVD.CPP | 57 +- {SparrowOS => TempleOS}/Adam/Dsk/FileMgr.CPP | 36 +- {SparrowOS => TempleOS}/Adam/FileBMP.CPP | 186 +- .../Adam/Gr/CSpriteBitMap.CPP | 6 +- {SparrowOS => TempleOS}/Adam/Gr/CSpriteEd.CPP | 70 +- .../Adam/Gr/CSpriteMesh.CPP | 14 +- .../Adam/Gr/CSpriteNew.CPP | 16 +- .../Adam/Gr/CSpriteVect.CPP | 42 +- {SparrowOS => TempleOS}/Adam/Gr/Gr.CPP | 30 +- {SparrowOS => TempleOS}/Adam/Gr/GrAsm.CPP | 0 {SparrowOS => TempleOS}/Adam/Gr/GrBitMap.CPP | 10 +- {SparrowOS => TempleOS}/Adam/Gr/GrCfg.CPP | 2 +- TempleOS/Adam/Gr/GrChar.CPP | 106 + .../Adam/Gr/GrComposites.CPP | 10 +- {SparrowOS => TempleOS}/Adam/Gr/GrDC.CPP | 10 +- .../Adam/Gr/GrPrimatives.CPP | 45 +- {SparrowOS => TempleOS}/Adam/Gr/GrScreen.CPP | 6 +- .../Adam/Gr/GrSpritePlot.CPP | 61 +- {SparrowOS => TempleOS}/Adam/Gr/GrVectMap.CPP | 52 +- {SparrowOS => TempleOS}/Adam/Gr/MathGr.CPP | 42 +- {SparrowOS => TempleOS}/Adam/Grep.CPP | 21 +- {SparrowOS => TempleOS}/Adam/Hash2a.CPP | 30 +- {SparrowOS => TempleOS}/Adam/HeapLog.CPP | 2 +- {SparrowOS => TempleOS}/Adam/LineCnt.CPP | 12 +- {SparrowOS => TempleOS}/Adam/LinkChk.CPP | 17 +- {SparrowOS => TempleOS}/Adam/LogIn.CPP | 26 +- {SparrowOS => TempleOS}/Adam/Math2a.CPP | 0 {SparrowOS => TempleOS}/Adam/MathODE.CPP | 24 +- {SparrowOS => TempleOS}/Adam/MemRep.CPP | 22 +- {SparrowOS => TempleOS}/Adam/Menu.CPP | 2 +- TempleOS/Adam/Merge.CPP | 91 + {SparrowOS => TempleOS}/Adam/Profiler.CPP | 12 +- {SparrowOS => TempleOS}/Adam/S2T.CPP | 6 +- {SparrowOS => TempleOS}/Adam/Snd/HDAudio.CPP | 75 +- {SparrowOS => TempleOS}/Adam/Snd/HDCfg.CPP | 86 +- .../Adam/Snd/MathAudio.CPP | 96 +- {SparrowOS => TempleOS}/Adam/Snd/Music.CPP | 2 +- {SparrowOS => TempleOS}/Adam/Snd/Snd.CPP | 6 +- .../Adam/Snd/SndEffects.CPP | 8 +- {SparrowOS => TempleOS}/Adam/Snd/SndFile.CPP | 11 +- {SparrowOS => TempleOS}/Adam/Start.CPP | 12 +- {SparrowOS => TempleOS}/Adam/TaskSettings.CPP | 0 {SparrowOS => TempleOS}/Adam/ToHtml.CPP | 48 +- {SparrowOS => TempleOS}/Adam/ToTXT.CPP | 15 +- {SparrowOS => TempleOS}/Adam/Training.CPP | 10 +- {SparrowOS => TempleOS}/Adam/Utils2a.CPP | 26 +- {SparrowOS => TempleOS}/Adam/WallPaper.CPP | Bin 6787 -> 6992 bytes {SparrowOS => TempleOS}/Adam/Window.CPP | 79 +- .../Adam/WordStat/WSDefs.DAT | Bin .../Adam/WordStat/WSDict.CPP | 28 +- .../Adam/WordStat/WSDictGen.CPP | 6 +- .../Adam/WordStat/WSMain.CPP | 31 +- .../Adam/WordStat/WSWords.DAT | Bin .../Adam/WordStat/WordStat.CPP | 14 +- TempleOS/Apps/AfterEgypt/AENotes.TXT | 7 + .../Apps/AfterEgypt/AENotesPart2.TXT | 0 .../Apps/AfterEgypt/AESplash.TXT | Bin .../Apps/AfterEgypt/AfterEgypt.CPP | Bin 5803 -> 5773 bytes .../Apps/AfterEgypt/Battle.CPP | Bin 3329 -> 3279 bytes .../Apps/AfterEgypt/Comics.CPP | 4 +- .../Apps/AfterEgypt/Comics/Moses01.TXT | Bin .../Apps/AfterEgypt/Comics/Moses02.TXT | Bin .../Apps/AfterEgypt/Comics/Moses04.TXT | Bin .../Apps/AfterEgypt/Comics/Moses05.TXT | Bin .../Apps/AfterEgypt/Comics/Moses06.TXT | Bin .../Apps/AfterEgypt/Comics/Moses07.TXT | Bin .../Apps/AfterEgypt/Comics/Moses08.TXT | Bin .../Apps/AfterEgypt/Comics/Moses10.TXT | Bin .../Apps/AfterEgypt/Comics/Moses12.TXT | Bin .../Apps/AfterEgypt/Comics/Moses13.TXT | Bin .../Apps/AfterEgypt/Comics/Moses14.TXT | Bin .../Apps/AfterEgypt/Comics/Moses15.TXT | Bin .../Apps/AfterEgypt/Comics/Moses16.TXT | Bin .../Apps/AfterEgypt/Comics/Moses17.TXT | Bin .../Apps/AfterEgypt/Comics/Moses18.TXT | Bin .../Apps/AfterEgypt/Comics/Moses19.TXT | Bin .../Apps/AfterEgypt/Comics/Moses20.TXT | Bin .../Apps/AfterEgypt/Comics/Moses21.TXT | Bin .../Apps/AfterEgypt/Comics/Moses22.TXT | Bin .../Apps/AfterEgypt/Comics/Moses23.TXT | Bin .../Apps/AfterEgypt/Comics/Moses24.TXT | Bin .../Apps/AfterEgypt/Comics/Moses25.TXT | Bin .../Apps/AfterEgypt/Comics/Moses26.TXT | Bin .../Apps/AfterEgypt/Comics/Moses27.TXT | Bin .../Apps/AfterEgypt/Comics/Moses28.TXT | Bin .../Apps/AfterEgypt/Comics/Moses29.TXT | Bin .../Apps/AfterEgypt/Comics/Moses30.TXT | Bin .../Apps/AfterEgypt/Comics/Moses31.TXT | Bin .../Apps/AfterEgypt/Comics/Moses32.TXT | Bin .../Apps/AfterEgypt/Comics/Moses34.TXT | Bin .../Apps/AfterEgypt/Comics/Moses35.TXT | Bin .../Apps/AfterEgypt/Comics/Moses36.TXT | Bin .../Apps/AfterEgypt/Comics/Moses37.TXT | Bin .../Apps/AfterEgypt/Comics/Moses38.TXT | Bin .../Apps/AfterEgypt/Comics/Moses39.TXT | Bin .../Apps/AfterEgypt/Comics/Moses40.TXT | Bin .../Apps/AfterEgypt/Comics/Moses42.TXT | Bin .../Apps/AfterEgypt/Comics/Moses43.TXT | Bin .../Apps/AfterEgypt/Comics/Moses44.TXT | Bin .../Apps/AfterEgypt/Comics/Moses45.TXT | Bin .../Apps/AfterEgypt/Comics/Moses46.TXT | Bin .../Apps/AfterEgypt/Comics/Moses47.TXT | Bin .../Apps/AfterEgypt/Comics/Moses48.TXT | Bin .../Apps/AfterEgypt/Comics/Moses49.TXT | Bin .../Apps/AfterEgypt/Comics/Moses50.TXT | Bin .../Apps/AfterEgypt/Comics/Moses52.TXT | Bin .../Apps/AfterEgypt/Comics/Moses53.TXT | Bin .../Apps/AfterEgypt/Comics/Moses54.TXT | Bin .../Apps/AfterEgypt/Comics/Moses55.TXT | Bin .../Apps/AfterEgypt/Comics/Moses56.TXT | Bin .../Apps/AfterEgypt/Comics/Moses57.TXT | Bin .../Apps/AfterEgypt/Comics/Moses58.TXT | Bin .../Apps/AfterEgypt/Comics/Moses59.TXT | Bin .../Apps/AfterEgypt/Comics/Moses60.TXT | Bin .../Apps/AfterEgypt/Comics/Moses61.TXT | Bin .../Apps/AfterEgypt/Comics/Moses62.TXT | Bin .../Apps/AfterEgypt/Comics/Moses63.TXT | Bin .../Apps/AfterEgypt/Comics/Moses64.TXT | Bin TempleOS/Apps/AfterEgypt/Comics/Moses65.TXT | Bin 0 -> 460 bytes TempleOS/Apps/AfterEgypt/Comics/Moses66.TXT | Bin 0 -> 445 bytes .../Apps/AfterEgypt/Comics/Moses67.TXT | Bin 434 -> 404 bytes TempleOS/Apps/AfterEgypt/Comics/Moses68.TXT | Bin 0 -> 412 bytes .../Apps/AfterEgypt/Comics/Moses71.TXT | Bin .../Apps/AfterEgypt/Comics/Moses72.TXT | Bin .../Apps/AfterEgypt/Comics/Moses73.TXT | Bin .../Apps/AfterEgypt/Comics/Moses74.TXT | Bin 388 -> 371 bytes .../Apps/AfterEgypt/Horeb.CPP | Bin 13077 -> 18720 bytes TempleOS/Apps/AfterEgypt/Load.CPP | 16 + .../Apps/AfterEgypt/Map.CPP | Bin 1790 -> 1789 bytes .../Apps/AfterEgypt/Quail.CPP | Bin 2815 -> 2802 bytes TempleOS/Apps/AfterEgypt/Run.CPP | 3 + .../Apps/AfterEgypt/WaterRock.CPP | Bin 3504 -> 3483 bytes .../Apps/GrModels/BallGen.CPP | 2 +- TempleOS/Apps/GrModels/Load.CPP | 3 + .../Apps/GrModels/ManGen.CPP | 2 +- .../Apps/GrModels/Models.CPP | 0 TempleOS/Apps/GrModels/Run.CPP | 2 + .../Apps/HolySpirit/HSNotes.TXT | 2 +- .../Apps/HolySpirit/HolySpirit.CPP | 2 +- TempleOS/Apps/HolySpirit/Vocab.TXT | 8251 +++++++++++++++++ .../Apps/KeepAway/KeepAway.CPP | 41 +- TempleOS/Apps/KeepAway/Load.CPP | 1 + TempleOS/Apps/KeepAway/Run.CPP | 2 + TempleOS/Apps/Logic/Load.CPP | 1 + {SparrowOS => TempleOS}/Apps/Logic/Logic.CPP | 12 +- TempleOS/Apps/Logic/Run.CPP | 2 + .../Apps/MusicOrgan/Examples/abiding.CPP | 7 +- .../Apps/MusicOrgan/Examples}/abyss.CPP | 7 +- .../Apps/MusicOrgan/Examples/almighty.CPP | 0 .../Apps/MusicOrgan/Examples/appreciate.CPP | 0 .../Apps/MusicOrgan/Examples/awake.CPP | 7 +- .../MusicOrgan/Examples/battlehymnsolo.CPP | Bin .../Apps/MusicOrgan/Examples}/bedewed.CPP | Bin 2044 -> 1980 bytes .../Apps/MusicOrgan/Examples/blinded.CPP | 7 +- .../Apps/MusicOrgan/Examples/born.CPP | 0 .../Apps/MusicOrgan/Examples/childish.CPP | 0 .../Apps/MusicOrgan/Examples/compassions.CPP | 0 .../Apps/MusicOrgan/Examples/completed.CPP | Bin .../Apps/MusicOrgan/Examples/cosam.CPP | 0 .../Apps/MusicOrgan/Examples/depending.CPP | 7 +- .../Apps/MusicOrgan/Examples}/despairing.CPP | 4 +- .../MusicOrgan/Examples/determination.CPP | 0 .../Apps/MusicOrgan/Examples}/dialogue.CPP | Bin 3382 -> 3381 bytes .../Apps/MusicOrgan/Examples/disputing.CPP | 0 .../Apps/MusicOrgan/Examples/doing.CPP | Bin 2589 -> 2639 bytes .../Apps/MusicOrgan/Examples/downfall.CPP | 0 .../Apps/MusicOrgan/Examples}/dream.CPP | 4 +- .../Apps/MusicOrgan/Examples/efforts.CPP | 0 .../Apps/MusicOrgan/Examples}/elijah.CPP | Bin 17661 -> 17596 bytes .../Apps/MusicOrgan/Examples/environeth.CPP | 0 .../Apps/MusicOrgan/Examples}/epicurus.CPP | 7 +- .../Apps/MusicOrgan/Examples/exalt.CPP | 0 .../Apps/MusicOrgan/Examples/exiled.CPP | 0 .../Apps/MusicOrgan/Examples/expedition.CPP | Bin .../Apps/MusicOrgan/Examples}/fairness.CPP | 7 +- TempleOS/Apps/MusicOrgan/Examples/feigned.CPP | 25 + .../Apps/MusicOrgan/Examples/finger.CPP | Bin 3968 -> 3966 bytes .../Apps/MusicOrgan/Examples/first.CPP | Bin 1885 -> 1821 bytes .../Apps/MusicOrgan/Examples}/fishermen.CPP | Bin 2038 -> 2355 bytes .../Apps/MusicOrgan/Examples/fixing.CPP | 0 .../Apps/MusicOrgan/Examples/flung.CPP | 0 .../Apps/MusicOrgan/Examples}/fog.CPP | Bin 1572 -> 1571 bytes .../Apps/MusicOrgan/Examples/forasmuch.CPP | Bin .../Apps/MusicOrgan/Examples/freaks.CPP | 0 TempleOS/Apps/MusicOrgan/Examples/free.CPP | 152 + .../Apps/MusicOrgan/Examples/furnishing.CPP | Bin 5274 -> 5273 bytes .../Apps/MusicOrgan/Examples}/good.CPP | Bin 1149 -> 1147 bytes .../Apps/MusicOrgan/Examples/gutenberg.CPP | Bin 2093 -> 2026 bytes .../Apps/MusicOrgan/Examples}/happy.CPP | Bin 1676 -> 1675 bytes .../Apps/MusicOrgan/Examples/honestly.CPP | 0 .../Apps/MusicOrgan/Examples}/hope.CPP | Bin 1668 -> 1667 bytes .../Apps/MusicOrgan/Examples/image.CPP | 7 +- TempleOS/Apps/MusicOrgan/Examples/josh.CPP | Bin 0 -> 2495 bytes TempleOS/Apps/MusicOrgan/Examples/keeping.CPP | Bin 0 -> 2538 bytes .../Apps/MusicOrgan/Examples}/kept.CPP | 7 +- .../Apps/MusicOrgan/Examples/limit.CPP | Bin 1464 -> 1463 bytes .../Apps/MusicOrgan/Examples/mary.CPP | 0 .../Apps/MusicOrgan/Examples/mightest.CPP | 0 .../Apps/MusicOrgan/Examples}/mildly.CPP | Bin 1905 -> 1838 bytes .../Apps/MusicOrgan/Examples/nay.CPP | 0 .../Apps/MusicOrgan/Examples}/night.CPP | Bin 3355 -> 3354 bytes .../Apps/MusicOrgan/Examples/o.CPP | 0 .../Apps/MusicOrgan/Examples/partake.CPP | Bin .../Apps/MusicOrgan/Examples/permitted.CPP | 0 .../Apps/MusicOrgan/Examples/personal.CPP | 0 .../Apps/MusicOrgan/Examples/population.CPP | 0 .../Apps/MusicOrgan/Examples/proponent.CPP | 0 .../Apps/MusicOrgan/Examples}/prosper.CPP | Bin 5575 -> 5566 bytes TempleOS/Apps/MusicOrgan/Examples/psalm.CPP | 25 + .../Apps/MusicOrgan/Examples/purpose.CPP | Bin 4622 -> 4622 bytes .../Apps/MusicOrgan/Examples/reasoning.CPP | 0 .../Apps/MusicOrgan/Examples/reliance.CPP | 7 +- .../Apps/MusicOrgan/Examples/reposes.CPP | 0 .../Apps/MusicOrgan/Examples/restless.CPP | 29 + .../Apps/MusicOrgan/Examples/rifled.CPP | 0 .../Apps/MusicOrgan/Examples/risen.CPP | 0 .../MusicOrgan/Examples}/satisfaction.CPP | Bin 2664 -> 2585 bytes .../Apps/MusicOrgan/Examples/scriptures.CPP | Bin .../Apps/MusicOrgan/Examples/service.CPP | 7 +- .../Apps/MusicOrgan/Examples/shield.CPP | Bin 2852 -> 2788 bytes .../Apps/MusicOrgan/Examples/signifies.CPP | 31 + .../Apps/MusicOrgan/Examples/silver.CPP | 0 .../Apps/MusicOrgan/Examples/small.CPP | Bin 10740 -> 10737 bytes .../Apps/MusicOrgan/Examples}/struggles.CPP | Bin 3081 -> 3080 bytes .../Apps/MusicOrgan/Examples}/sustain.CPP | Bin 2832 -> 2831 bytes .../Apps/MusicOrgan/Examples/teachings.CPP | 7 +- .../Apps/MusicOrgan/Examples/thereupon.CPP | 7 +- .../Apps/MusicOrgan/Examples/thither.CPP | 0 .../Apps/MusicOrgan/Examples/twins.CPP | 0 .../Apps/MusicOrgan/Examples/valued.CPP | Bin 1509 -> 1508 bytes .../Apps/MusicOrgan/Examples}/vengeance.CPP | Bin 6567 -> 6496 bytes .../Apps/MusicOrgan/Examples/verses.CPP | 11 + .../Apps/MusicOrgan/Examples/villa.CPP | 0 .../Apps/MusicOrgan/Examples}/wisdom.CPP | Bin 1671 -> 1669 bytes .../Apps/MusicOrgan/Examples}/witherto.CPP | 7 +- .../Apps/MusicOrgan/Examples/worship.CPP | 8 +- .../Apps/MusicOrgan/Examples/you.CPP | 0 .../Apps/MusicOrgan/Examples/zip.CPP | Bin 2508 -> 2454 bytes .../Apps/MusicOrgan/Help.TXT | 10 +- .../Apps/MusicOrgan/Install.CPP | 0 .../Apps/MusicOrgan/JukeBox.CPP | 8 +- TempleOS/Apps/MusicOrgan/Load.CPP | 7 + .../Apps/MusicOrgan/MakeSong.CPP | 78 +- .../Apps/MusicOrgan/Organ.CPP | 69 +- .../Apps/MusicOrgan/OrganCtrls.CPP | 0 TempleOS/Apps/MusicOrgan/Run.CPP | 3 + TempleOS/Apps/Pilgrims/Load.CPP | 7 + .../Apps/Pilgrims/NewEngland.GRA | Bin .../Apps/Pilgrims/Pilgrims.CPP | 40 +- TempleOS/Apps/Pilgrims/Run.CPP | 2 + {SparrowOS => TempleOS}/Apps/Span/Install.CPP | 0 TempleOS/Apps/Span/Load.CPP | 10 + TempleOS/Apps/Span/Run.CPP | 3 + {SparrowOS => TempleOS}/Apps/Span/Span.HPP | 2 +- .../Apps/Span/SpanBridge1.CPP | 0 .../Apps/Span/SpanDerive.CPP | 0 .../Apps/Span/SpanMain.CPP | 20 +- {SparrowOS => TempleOS}/Apps/Span/SpanNew.CPP | 2 +- TempleOS/Apps/Strut/Load.CPP | 6 + TempleOS/Apps/Strut/Run.CPP | 3 + TempleOS/Apps/Strut/Strut.CPP | 629 ++ .../Apps/Tanks/AIs/Human.CPP | 6 +- .../Apps/Tanks/AIs/SimpleAI.CPP | 8 +- .../Apps/Tanks/Install.CPP | 0 TempleOS/Apps/Tanks/Load.CPP | 1 + TempleOS/Apps/Tanks/Run.CPP | 2 + {SparrowOS => TempleOS}/Apps/Tanks/Tanks.CPP | 172 +- .../Apps/TimeClock/Install.CPP | 0 TempleOS/Apps/TimeClock/Load.CPP | 1 + .../Apps/TimeClock/TimeClk.CPP | 3 +- TempleOS/Apps/Timeout/Load.CPP | 5 + TempleOS/Apps/Timeout/Run.CPP | 2 + .../Apps/Timeout/Timeout.CPP | 52 +- TempleOS/Apps/Vocabulary/Load.CPP | 5 + TempleOS/Apps/Vocabulary/Run.CPP | 2 + .../Apps/Vocabulary/VocabQuiz.CPP | 2 +- TempleOS/Apps/X-Caliber/Load.CPP | 8 + TempleOS/Apps/X-Caliber/Run.CPP | 2 + .../Apps/X-Caliber/X-Caliber.CPP | 91 +- .../Apps/X-Caliber/XCCtrls.CPP | 0 .../Compiler/Assembler.CPP | 57 +- {SparrowOS => TempleOS}/Compiler/BackEnd.CPP | 30 +- {SparrowOS => TempleOS}/Compiler/CmpAsm.CPP | 1 + {SparrowOS => TempleOS}/Compiler/CmpDefs.HPP | 240 +- {SparrowOS => TempleOS}/Compiler/CmpExts.CPP | 10 +- {SparrowOS => TempleOS}/Compiler/CmpGlbls.CPP | 0 {SparrowOS => TempleOS}/Compiler/CmpInit.CPP | 46 +- {SparrowOS => TempleOS}/Compiler/CmpMain.CPP | 57 +- .../Compiler/CmpQueVect.CPP | 0 {SparrowOS => TempleOS}/Compiler/CodeGen.CPP | 46 +- TempleOS/Compiler/Compiler.BIN | Bin 0 -> 266886 bytes {SparrowOS => TempleOS}/Compiler/Compiler.HPP | 18 +- TempleOS/Compiler/Compiler.MAP | 736 ++ {SparrowOS => TempleOS}/Compiler/Compiler.PRJ | 2 +- .../Compiler/Directives.CPP | 4 +- .../Compiler/ExpParser.CPP | 44 +- {SparrowOS => TempleOS}/Compiler/Hash1b.CPP | 24 +- {SparrowOS => TempleOS}/Compiler/Lex.CPP | 161 +- {SparrowOS => TempleOS}/Compiler/OpCodes.TXT | 57 +- .../Compiler/OptPass012.CPP | 1 + {SparrowOS => TempleOS}/Compiler/OptPass3.CPP | 7 +- {SparrowOS => TempleOS}/Compiler/OptPass4.CPP | 1 + {SparrowOS => TempleOS}/Compiler/OptPass5.CPP | 0 {SparrowOS => TempleOS}/Compiler/OptPass6.CPP | 0 .../Compiler/OptPass789A.CPP | 48 +- .../Compiler/StmtParser.CPP | 172 +- .../Compiler/Unassembler.CPP | 298 +- TempleOS/Demo/AcctExample/Adam3.CPP | 13 + TempleOS/Demo/AcctExample/Adam3bPkgs.CPP | 9 + .../Demo/AcctExample}/Adam3dKeyPlugIns.CPP | 32 +- .../Demo/AcctExample/Adam3eWrappers.CPP | 2 +- .../Demo/AcctExample/Adam3fSys.CPP | 19 +- .../Demo/AcctExample/DoItOnce.CPP | 4 +- .../Demo/AcctExample/PersonalMenu.TXT | Bin 51890 -> 52801 bytes .../Demo/AcctExample}/TAD/Adam3aLocalize.CPP | 2 +- .../AcctExample}/TAD/Archive/FileSysISO3.CPP | 20 +- .../Demo/AcctExample}/TAD/Archive/Logo.TXT | Bin 33188 -> 33204 bytes .../AcctExample/TAD/Archive/Marketing.TXT | 21 + .../Demo/AcctExample}/TAD/Archive/USB.CPP | 2 +- .../Demo/AcctExample}/TAD/Archive/USB1a.CPP | 12 +- TempleOS/Demo/AcctExample/TAD/MakeDistro.CPP | 54 + .../Demo/AcctExample}/TAD/PersonalNotes.TXT | 51 +- TempleOS/Demo/AcctExample/TAD/Registry.CPP | 13 + .../Demo/AcctExample}/TSAdam.CPP | 365 +- .../Demo/AcctExample/TSDistro.CPP | 314 +- {SparrowOS => TempleOS}/Demo/Asm/AsmAndC.CPP | 12 +- {SparrowOS => TempleOS}/Demo/Asm/AsmAndC2.CPP | 10 +- .../Demo/Asm/AsmHelloWorld.CPP | 6 +- {SparrowOS => TempleOS}/Demo/Asm/BuzzFizz.CPP | 4 +- .../Demo/Asm/DivByHand.CPP | 0 .../Demo/Asm/MulByHand.CPP | 6 +- {SparrowOS => TempleOS}/Demo/Asm/PutDec.CPP | 2 +- .../Demo/AutoFile/AFDir.AUT | 2 +- .../Demo/AutoFile/AFEd.AUT | 2 +- .../Demo/AutoFile/AFEd.TXT | 0 .../Demo/AutoFile/AFPopUp.CPP | 0 .../Demo/AutoFile/AFPopUpWait.AUT | 0 .../Demo/AutoFile/AFProfile.AUT | 2 +- .../Demo/AutoFile/AFSetIP.CPP | 0 {SparrowOS => TempleOS}/Demo/ClassMeta.CPP | 6 +- {SparrowOS => TempleOS}/Demo/CompileDemo.CPP | 0 {SparrowOS => TempleOS}/Demo/DateTime.CPP | 13 +- {SparrowOS => TempleOS}/Demo/DbgDemo.CPP | 5 +- {SparrowOS => TempleOS}/Demo/Define.CPP | 6 +- {SparrowOS => TempleOS}/Demo/Digits.CPP | 4 +- {SparrowOS => TempleOS}/Demo/Doc/CallBack.CPP | 16 +- .../Demo/Doc/CallBackAux2.CPP | 6 +- .../Demo/Doc/CursorMove.CPP | 2 +- {SparrowOS => TempleOS}/Demo/Doc/Data.CPP | 2 +- .../Demo/Doc/DefineStr.CPP | 0 {SparrowOS => TempleOS}/Demo/Doc/DemoDoc.TXT | Bin {SparrowOS => TempleOS}/Demo/Doc/FileRead.CPP | 8 +- {SparrowOS => TempleOS}/Demo/Doc/Form.CPP | 8 +- .../Demo/Doc/MenuButton.CPP | 0 .../Demo/Doc/MenuSprite.CPP | Bin {SparrowOS => TempleOS}/Demo/Doc/TextDemo.CPP | 0 {SparrowOS => TempleOS}/Demo/Doc/TreeDemo.CPP | 4 +- .../Demo/Doc/UnusedDefine.CPP | 4 +- {SparrowOS => TempleOS}/Demo/Dsk/DataBase.CPP | 0 {SparrowOS => TempleOS}/Demo/Dsk/FPrintF.CPP | 4 +- TempleOS/Demo/Dsk/OrderedIO.CPP | 17 + {SparrowOS => TempleOS}/Demo/Dsk/Raw.CPP | 0 .../Demo/Dsk/UnusedSpaceRep.CPP | 0 {SparrowOS => TempleOS}/Demo/Exceptions.CPP | 6 +- .../Demo/ExtendedChars.CPP | 6 +- .../Demo/GameStarters/BigGuns.CPP | Bin 6533 -> 6505 bytes .../Demo/GameStarters/BirdLand.CPP | Bin 6065 -> 5936 bytes .../Demo/GameStarters/BlackDiamond.CPP | Bin 10316 -> 10313 bytes .../Demo/GameStarters/Bomber.CPP | Bin 12956 -> 12893 bytes .../Demo/GameStarters/Chess.CPP | 16 +- .../Demo/GameStarters/ChessNet.CPP | Bin 6084 -> 6049 bytes .../Demo/GameStarters/CircleTrace.CPP | 10 +- .../Demo/GameStarters/Coach.CPP | Bin 4884 -> 4850 bytes .../Demo/GameStarters/Collision.CPP | Bin 4171 -> 4118 bytes .../Demo/GameStarters/DunGen.CPP | 38 +- .../Demo/GameStarters/EagleDive.CPP | 48 +- .../Demo/GameStarters/FPS.CPP | 38 +- .../Demo/GameStarters/Halogen.CPP | 8 +- .../Demo/GameStarters/MassSpring.CPP | 4 +- .../Demo/GameStarters/MissileDefense.CPP | Bin 11156 -> 11136 bytes .../Demo/GameStarters/Navy.CPP | 28 +- .../Demo/GameStarters/RainDrops.CPP | 4 +- .../Demo/GameStarters/RawHide.CPP | 26 +- .../Demo/GameStarters/Rocket.CPP | Bin 4722 -> 4707 bytes .../Demo/GameStarters/RocketScience.CPP | Bin 12983 -> 12939 bytes .../Demo/GameStarters/Rocks.CPP | 22 +- .../Demo/GameStarters/SpaceShip.CPP | Bin 13923 -> 13882 bytes .../Demo/GameStarters/Squirt.CPP | 14 +- .../Demo/GameStarters/Stadium/Stadium.CPP | Bin 3791 -> 3747 bytes .../Demo/GameStarters/Stadium/Stadium.GRA | Bin .../Demo/GameStarters/Stadium/Stadium.TXT | Bin .../Demo/GameStarters/Stadium/StadiumGen.CPP | 4 +- .../Demo/GameStarters/TheDead.CPP | Bin 7105 -> 7102 bytes .../Demo/GameStarters/TicTacToe.CPP | 0 .../Demo/GameStarters/Varoom.CPP | Bin 7651 -> 7636 bytes .../Demo/GameStarters/WarGame.CPP | Bin 8326 -> 8296 bytes .../Demo/GameStarters/Wenceslas.CPP | 56 +- .../Demo/GameStarters/Whap.CPP | 0 .../Demo/GameStarters/Zing.CPP | Bin 4882 -> 4815 bytes .../Demo/GameStarters/ZoneOut.CPP | Bin 9300 -> 9241 bytes {SparrowOS => TempleOS}/Demo/GlblVars.CPP | 22 +- .../Demo/Graphics/3DPoly.CPP | 0 .../Demo/Graphics/BSpline.CPP | 0 .../Demo/Graphics/Bling.CPP | 11 +- .../Demo/Graphics/Blot.CPP | 0 .../Demo/Graphics/Bounce.CPP | 2 +- {SparrowOS => TempleOS}/Demo/Graphics/Box.CPP | 0 .../Demo/Graphics/CPUPlot.CPP | 2 +- .../Demo/Graphics/Camp.CPP | Bin 22952 -> 22837 bytes .../Demo/Graphics/CaptureScreen.CPP | 6 +- .../Demo/Graphics/Cartesian.CPP | 2 +- .../Demo/Graphics/CharGraphics.CPP | 8 +- .../Demo/Graphics/Circuit.CPP | 8 +- .../Demo/Graphics/CommonAncestor.CPP | 4 +- .../Demo/Graphics/Dither.CPP | 0 .../Demo/Graphics/Doodle.CPP | 0 .../Demo/Graphics/DotNet.CPP | 0 .../Demo/Graphics/EdCSprite.CPP | Bin 6792 -> 6790 bytes .../Demo/Graphics/Extents.CPP | Bin 1182 -> 1180 bytes .../Demo/Graphics/Flowers.CPP | Bin 4609 -> 4608 bytes .../Demo/Graphics/FontEd.CPP | 12 +- .../Demo/Graphics/Golf.CPP | Bin 1065 -> 1046 bytes .../Demo/Graphics/Hanoi.CPP | 0 .../Demo/Graphics/Life.CPP | 0 .../Demo/Graphics/Lines.CPP | 0 TempleOS/Demo/Graphics/Logo.CPP | Bin 0 -> 20191 bytes .../Demo/Graphics/LowPassFilter.CPP | 0 .../Demo/Graphics/MathAudioDemo.CPP | 4 + .../Demo/Graphics/Mountain.CPP | Bin 2860 -> 2792 bytes .../Demo/Graphics/NeatTrick.CPP | 0 .../Demo/Graphics/Palette.CPP | 0 .../Demo/Graphics/Pic2ASCII.CPP | 0 .../Demo/Graphics/Pick.CPP | Bin 2685 -> 2684 bytes .../Demo/Graphics/Pick3D.CPP | Bin 6591 -> 6576 bytes .../Demo/Graphics/PixelCollision.CPP | Bin 3388 -> 3338 bytes .../Demo/Graphics/PoleZeros.CPP | 0 .../Demo/Graphics/PredatorPrey.CPP | 4 +- .../Demo/Graphics/RotateTank.CPP | Bin 2907 -> 2844 bytes .../Demo/Graphics/ScrollBars.CPP | Bin 4524 -> 4523 bytes .../Demo/Graphics/Shading.CPP | 6 +- .../Demo/Graphics/Shadow.CPP | Bin 2246 -> 2244 bytes .../Demo/Graphics/SliderCtrl.CPP | 0 .../Demo/Graphics/Speedline.CPP | 0 TempleOS/Demo/Graphics/SpritePlot.CPP | Bin 0 -> 20725 bytes .../Demo/Graphics/SpritePlot3D.CPP | Bin 1210 -> 1209 bytes .../Demo/Graphics/SpritePut.CPP | Bin .../Demo/Graphics/SpritePutExt.CPP | 4 +- .../Demo/Graphics/SpriteText.CPP | Bin 867 -> 863 bytes .../Demo/Graphics/Symmetry.CPP | 0 .../Demo/Graphics/Transform.CPP | Bin 8994 -> 8991 bytes .../Demo/Graphics/WallPaperCtrl.CPP | 4 +- .../Demo/Graphics/WallPaperFish.CPP | Bin 6387 -> 6388 bytes .../Demo/Graphics/WinZBuf.CPP | 0 {SparrowOS => TempleOS}/Demo/KeyBitMap.CPP | Bin 927 -> 926 bytes TempleOS/Demo/Lectures/64BitAsmQuiz.TXT | 94 + .../Demo/Lectures/AndNotMod.CPP | 0 .../Demo/Lectures/FixedPoint.CPP | 20 +- .../Demo/Lectures/FixedPointAdvanced.CPP | 2 +- .../Demo/Lectures/GraphicsCPULoad.CPP | 6 +- .../Demo/Lectures/InterruptDemo.CPP | 4 +- .../Demo/Lectures/MiniCompiler.CPP | 16 +- .../Demo/Lectures/MiniGrLib.CPP | 16 +- .../Demo/Lectures/Optimization.CPP | 16 +- .../Demo/Lectures/PCIInterrupts.CPP | 2 +- .../Demo/Lectures/PageTableEntries1.CPP | 6 +- .../Demo/Lectures/PageTableEntries2.CPP | 4 +- .../Demo/Lectures/Ring3.CPP | 10 +- .../Demo/Lectures/ScreenMemory.CPP | 6 +- .../Demo/Lectures/Spinning.CPP | 12 +- .../Demo/Lectures/Uncached.CPP | 0 {SparrowOS => TempleOS}/Demo/MagicPairs.CPP | 4 +- TempleOS/Demo/MakeDistro.CPP | 54 + {SparrowOS => TempleOS}/Demo/Maze.CPP | 6 +- {SparrowOS => TempleOS}/Demo/MsgLoop.CPP | 0 .../Demo/MultiCore/Clouds.CPP | 2 +- .../Demo/MultiCore/Interrupts.CPP | 4 +- .../Demo/MultiCore/Layers3DJob.CPP | Bin 2391 -> 2389 bytes .../Demo/MultiCore/LayersSpawn.CPP | 6 +- .../Demo/MultiCore/LoadTest.CPP | 6 +- .../Demo/MultiCore/Lock.CPP | 0 .../Demo/MultiCore/MPAdd.CPP | 6 +- .../Demo/MultiCore/MPPrintF.CPP | 0 .../Demo/MultiCore/Noise.CPP | 4 +- .../Demo/MultiCore/Palindrome.CPP | 5 +- .../Demo/MultiCore/Primes.CPP | 4 +- .../Demo/MultiCore/RadixSort.CPP | 12 +- .../Demo/MultiCore/Sort.CPP | 8 +- .../Demo/OldSchool/Demo1/MD1.CPP | 0 .../Demo/OldSchool/Demo1/MD2.CPP | 0 .../Demo/OldSchool/Demo1/MDMain.CPP | 0 .../Demo/OldSchool/Demo1/ModuleDemo.HPP | 0 TempleOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ | 13 + .../Demo/OldSchool/Demo1/ReadMe.TXT | 0 .../Demo/OldSchool/Demo2/MakeFile.CPP | 6 +- TempleOS/Demo/OldSchool/Demo2/OD1.BIN | Bin 0 -> 160 bytes .../Demo/OldSchool/Demo2/OD1.PRJ | 2 +- TempleOS/Demo/OldSchool/Demo2/OD2.BIN | Bin 0 -> 335 bytes .../Demo/OldSchool/Demo2/OD2.PRJ | 4 +- TempleOS/Demo/OldSchool/Demo2/ODMain.BIN | Bin 0 -> 368 bytes .../Demo/OldSchool/Demo2/ODMain.PRJ | 6 +- .../Demo/OldSchool/Demo2/ObjDemo.HPP | 0 .../Demo/OldSchool/Demo2/ReadMe.TXT | 4 +- TempleOS/Demo/OldSchool/ReadMe.TXT | 11 + {SparrowOS => TempleOS}/Demo/ParenWarn.CPP | 0 .../Demo/PhoneNumWords.CPP | 6 +- {SparrowOS => TempleOS}/Demo/PrintF.CPP | 6 +- {SparrowOS => TempleOS}/Demo/Progress.CPP | 0 {SparrowOS => TempleOS}/Demo/Prompt.CPP | 6 +- {SparrowOS => TempleOS}/Demo/PullDownMenu.CPP | 0 {SparrowOS => TempleOS}/Demo/RegistryDemo.CPP | 2 +- {SparrowOS => TempleOS}/Demo/ScreenCodes.CPP | 6 +- .../Demo/Shared/TreeDemoJoin.CPP | 2 +- .../Demo/Snd/ASCIIOrgan.CPP | Bin 4180 -> 4178 bytes {SparrowOS => TempleOS}/Demo/Snd/BeatFreq.CPP | 0 TempleOS/Demo/Snd/Chords.CPP | 16 + {SparrowOS => TempleOS}/Demo/Snd/Echo.CPP | 0 TempleOS/Demo/Snd/Guitar.CPP | 17 + .../Demo/Snd/MorseCode.CPP | 20 +- {SparrowOS => TempleOS}/Demo/Snd/OhGreat.CPP | 0 .../Demo/Snd/PolyPhonic.CPP | 0 {SparrowOS => TempleOS}/Demo/Snd/Record.CPP | 0 {SparrowOS => TempleOS}/Demo/Snd/SndScope.CPP | 0 {SparrowOS => TempleOS}/Demo/Snd/Synth.CPP | 10 +- .../Demo/Snd/WaterFowl.CPP | Bin 3879 -> 3861 bytes {SparrowOS => TempleOS}/Demo/Spy.CPP | 0 {SparrowOS => TempleOS}/Demo/StkGrow.CPP | 12 +- {SparrowOS => TempleOS}/Demo/SubIntAccess.CPP | 6 +- .../Demo/SuggestSpelling.CPP | 6 +- {SparrowOS => TempleOS}/Demo/TimeIns.CPP | 0 .../Demo/WebLogExample/WebLogRep.CPP | 24 +- .../Demo/WebLogExample/WebLogRep.TXT | 42 +- .../Demo/WebLogExample/WebLogScramble.CPP | 6 +- TempleOS/Demo/WebLogExample/access_090509.LOG | 756 ++ TempleOS/Demo/WebLogExample/access_090510.LOG | 788 ++ {SparrowOS => TempleOS}/Demo/WinMgr2.CPP | 4 +- {SparrowOS => TempleOS}/Demo/WordSearch.CPP | 8 +- .../Doc/Acknowledgements.TXT | 20 +- {SparrowOS => TempleOS}/Doc/AutoFile.TXT | 6 +- {SparrowOS => TempleOS}/Doc/Bit.TXT | 0 {SparrowOS => TempleOS}/Doc/Boot.TXT | Bin 4450 -> 4370 bytes TempleOS/Doc/ChangeLog.TXT | 4 + TempleOS/Doc/Char.TXT | 16 + TempleOS/Doc/Charter.TXT | 34 + {SparrowOS => TempleOS}/Doc/CmdLine.TXT | 6 +- TempleOS/Doc/Confuse.TXT | 49 + {SparrowOS => TempleOS}/Doc/CtrlL.TXT | 6 +- TempleOS/Doc/Ctrls.TXT | 3 + TempleOS/Doc/Customize.TXT | 9 + TempleOS/Doc/CutCorners.TXT | 11 + TempleOS/Doc/D3.TXT | 4 + {SparrowOS => TempleOS}/Doc/Dbg.TXT | 16 +- TempleOS/Doc/Define.TXT | 6 + TempleOS/Doc/DemoIndex.TXT | 199 + {SparrowOS => TempleOS}/Doc/Differences.TXT | 40 +- {SparrowOS => TempleOS}/Doc/Directives.TXT | 13 +- TempleOS/Doc/Doc.TXT | 8 + {SparrowOS => TempleOS}/Doc/Dollar.TXT | 34 +- {SparrowOS => TempleOS}/Doc/EdPullDown.TXT | 0 {SparrowOS => TempleOS}/Doc/Features.TXT | 10 +- {SparrowOS => TempleOS}/Doc/FileMgr.TXT | 58 +- .../Doc/FileMgrPullDown.TXT | 0 {SparrowOS => TempleOS}/Doc/Glossary.TXT | 29 +- {SparrowOS => TempleOS}/Doc/Graphics.TXT | Bin 7219 -> 6694 bytes TempleOS/Doc/Grub.TXT | 24 + {SparrowOS => TempleOS}/Doc/GuideLines.TXT | 26 +- TempleOS/Doc/Hash.TXT | 4 + TempleOS/Doc/HelpIndex.TXT | 184 + {SparrowOS => TempleOS}/Doc/HelpSystem.TXT | 0 {SparrowOS => TempleOS}/Doc/ImportExports.TXT | 6 +- {SparrowOS => TempleOS}/Doc/InputPointer.TXT | 2 +- {SparrowOS => TempleOS}/Doc/Install.TXT | 22 +- {SparrowOS => TempleOS}/Doc/KeyBoard.TXT | 6 +- TempleOS/Doc/Lex.TXT | 4 + {SparrowOS => TempleOS}/Doc/Mem.TXT | Bin 6558 -> 6301 bytes {SparrowOS => TempleOS}/Doc/Menus.TXT | 2 +- TempleOS/Doc/MultiCore.TXT | 14 + TempleOS/Doc/MultiTasking.TXT | 22 + TempleOS/Doc/Mysteries.TXT | 67 + TempleOS/Doc/NamedFrame.TXT | 2 + {SparrowOS => TempleOS}/Doc/NewFileSystem.TXT | 4 +- TempleOS/Doc/ODE.TXT | 7 + {SparrowOS => TempleOS}/Doc/Options.TXT | 4 +- {SparrowOS => TempleOS}/Doc/Profiler.TXT | 2 +- {SparrowOS => TempleOS}/Doc/Que.TXT | 0 {SparrowOS => TempleOS}/Doc/Quirks.TXT | 8 +- {SparrowOS => TempleOS}/Doc/Requirements.TXT | 2 +- TempleOS/Doc/Snd.TXT | 6 + TempleOS/Doc/Splash.TXT | 31 + TempleOS/Doc/Sprite.TXT | 8 + {SparrowOS => TempleOS}/Doc/Start.TXT | 6 +- {SparrowOS => TempleOS}/Doc/Strategy.TXT | 12 +- {SparrowOS => TempleOS}/Doc/SysPgmGuide.TXT | 10 +- TempleOS/Doc/TSZ.TXT | 25 + TempleOS/Doc/TimeCycles.TXT | 3 + TempleOS/Doc/TimeDate.TXT | 5 + {SparrowOS => TempleOS}/Doc/TimeHPET.TXT | 0 {SparrowOS => TempleOS}/Doc/TimeJiffy.TXT | 0 {SparrowOS => TempleOS}/Doc/Tips.TXT | 44 +- {SparrowOS => TempleOS}/Doc/Transform.TXT | 8 +- TempleOS/Doc/TrivialSolutions.TXT | 20 + TempleOS/Doc/Upgrade.TXT | 8 + TempleOS/Doc/Welcome.TXT | 73 + {SparrowOS => TempleOS}/Doc/WordStat.TXT | 2 +- TempleOS/Kernel/AOT.HPP | 14 + .../Kernel/AOTAdam.HPP | 0 TempleOS/Kernel/Adam1.CPP | 12 + .../OSMain => TempleOS/Kernel}/Adam1a.HPP | 442 +- .../OSMain => TempleOS/Kernel}/Adam1b.HPP | 23 +- .../OSMain => TempleOS/Kernel}/Adam1c.HPP | 199 +- .../OSMain => TempleOS/Kernel}/BIOS32.CPP | 116 +- .../OSMain => TempleOS/Kernel}/BootDefs.HPP | 6 +- .../OSMain => TempleOS/Kernel}/Compress.CPP | 2 +- TempleOS/Kernel/Date.CPP | 483 + .../OSMain => TempleOS/Kernel}/Dbg1a.CPP | 427 +- .../OSMain => TempleOS/Kernel}/Define1a.CPP | 56 +- .../OSMain => TempleOS/Kernel}/Display.CPP | 26 +- .../OSMain => TempleOS/Kernel}/Dsk/ATADef.HPP | 2 +- .../OSMain => TempleOS/Kernel}/Dsk/Dsk1a.CPP | 191 +- .../OSMain => TempleOS/Kernel}/Dsk/Dsk1b.CPP | 237 +- .../OSMain => TempleOS/Kernel}/Dsk/Dsk1c.CPP | 33 +- .../OSMain => TempleOS/Kernel}/Dsk/DskATA.CPP | 341 +- TempleOS/Kernel/Dsk/DskAddDev.CPP | 318 + .../Kernel}/Dsk/DskCFile.CPP | 59 +- .../Kernel}/Dsk/DskCache.CPP | 17 - .../OSMain => TempleOS/Kernel}/Dsk/DskDir.CPP | 8 +- .../OSMain => TempleOS/Kernel}/Dsk/DskStr.CPP | 76 +- .../Kernel}/Dsk/FileSysFAT.CPP | 39 +- .../Kernel}/Dsk/FileSysISO1.CPP | 24 +- .../Kernel}/Dsk/FileSysNative.CPP | 59 +- .../OSMain => TempleOS/Kernel}/EdLite.CPP | 72 +- .../OSMain => TempleOS/Kernel}/Except.CPP | 11 +- .../OSMain => TempleOS/Kernel}/FIFO.CPP | 0 .../OSMain => TempleOS/Kernel}/Font8x8.CPP | 2 +- .../OSMain => TempleOS/Kernel}/Hash1a.CPP | 65 +- .../OSMain => TempleOS/Kernel}/Interrupts.CPP | 100 +- .../OSCfg.CPP => TempleOS/Kernel/KCfg.CPP | 180 +- .../OSEnd.CPP => TempleOS/Kernel/KEnd.CPP | 52 +- .../OSExts.CPP => TempleOS/Kernel/KExts.CPP | 37 +- .../OSGlbls.CPP => TempleOS/Kernel/KGlbls.CPP | 22 +- .../OSStart.CPP => TempleOS/Kernel/KStart.CPP | 74 +- .../Kernel}/KbdMouse/InputPointer.CPP | 0 .../Kernel}/KbdMouse/Keyboard.CPP | 20 +- .../Kernel}/KbdMouse/Message.CPP | 10 +- .../Kernel}/KbdMouse/Mouse.CPP | 2 +- TempleOS/Kernel/Kernel.MAP | 3555 +++++++ .../OSMain.PRJ => TempleOS/Kernel/Kernel.PRJ | 32 +- .../OSMain => TempleOS/Kernel}/Math1a.CPP | 0 .../OSMain => TempleOS/Kernel}/Math1b.CPP | 2 +- .../OSMain => TempleOS/Kernel}/Memory.CPP | 91 +- .../OSMain => TempleOS/Kernel}/Misc1a.CPP | 44 +- .../OSMain => TempleOS/Kernel}/MultiProc.CPP | 24 +- .../OSMain => TempleOS/Kernel}/PSect.CPP | 56 +- .../OSMain => TempleOS/Kernel}/QSort.CPP | 8 +- .../OSMain => TempleOS/Kernel}/Scheduler.CPP | 38 +- .../OSMain => TempleOS/Kernel}/Str1a.CPP | 377 +- .../OSMain => TempleOS/Kernel}/Task1a.CPP | 66 +- .../OSMain => TempleOS/Kernel}/TaskCmd.CPP | 0 .../OSMain => TempleOS/Kernel}/Utils1a.CPP | 0 {SparrowOS => TempleOS}/Misc/Bible.TXT | 0 {SparrowOS => TempleOS}/Misc/Dollar.CPP | 4 +- {SparrowOS => TempleOS}/Misc/OSTestSuite.CPP | 424 +- {SparrowOS => TempleOS}/Misc/PCIDevices.TXT | 1351 +-- {SparrowOS => TempleOS}/Misc/Tour/Tour.AUT | 4 +- {SparrowOS => TempleOS}/Misc/Tour/Tour1.AUT | 4 +- {SparrowOS => TempleOS}/Misc/Tour/Tour2.AUT | 11 +- {SparrowOS => TempleOS}/Misc/Tour/Tour3.AUT | 8 +- {SparrowOS => TempleOS}/Misc/Tour/Tour4.AUT | 2 +- {SparrowOS => TempleOS}/Misc/Tour/Tour5.AUT | 26 +- {SparrowOS => TempleOS}/Misc/Tour/Tour6.AUT | 2 +- {SparrowOS => TempleOS}/Misc/Tour/Tour7.AUT | 2 +- {SparrowOS => TempleOS}/Misc/Tour/Tour8.AUT | 2 +- {SparrowOS => TempleOS}/Misc/Tour/Tour9.AUT | 2 +- {SparrowOS => TempleOS}/Misc/Tour/TourA.AUT | 4 +- TempleOS/ReadMe.TXT | 20 + Windows/{TSZSetUp.ZIP => TSZSetUp.zip} | Bin 7223759 -> 7220418 bytes 958 files changed, 26043 insertions(+), 15907 deletions(-) create mode 100644 0000Boot/0000Kernel.BIN.C delete mode 100644 0000Boot/0000OSMain.BIN.C delete mode 100644 SparrowOS/Accts/Adam3cSnd.CPP delete mode 100644 SparrowOS/Accts/TS/Adam3bPkgs.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/MusicOrgan/signifies.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/Registry.CPP delete mode 100644 SparrowOS/Accts/TS/TAD/Test.CPP delete mode 100644 SparrowOS/Accts/TS/TSIDComputer.CPP delete mode 100644 SparrowOS/Accts/TS/TSIDDft.CPP delete mode 100644 SparrowOS/Accts/TS/Wb2/Hymns.TXT delete mode 100644 SparrowOS/Accts/TS/Wb2/LineCnt.TXT delete mode 100644 SparrowOS/Accts/TS/Wb2/Menu.BMP delete mode 100644 SparrowOS/Accts/TS/Wb2/ScreenShots.TXT delete mode 100644 SparrowOS/Accts/TS/Wb2/SparrowOS.BMP delete mode 100644 SparrowOS/Accts/TS/Wb2/Tanks.BMP delete mode 100644 SparrowOS/Accts/TS/Wb2/index.TXT delete mode 100644 SparrowOS/Adam/Gr/GrChar.CPP delete mode 100644 SparrowOS/Adam/Merge.CPP delete mode 100644 SparrowOS/Apps/AfterEgypt/AENotes.TXT delete mode 100644 SparrowOS/Apps/AfterEgypt/Load.CPP delete mode 100644 SparrowOS/Apps/AfterEgypt/Run.CPP delete mode 100644 SparrowOS/Apps/GrModels/Load.CPP delete mode 100644 SparrowOS/Apps/GrModels/Run.CPP delete mode 100644 SparrowOS/Apps/KeepAway/Load.CPP delete mode 100644 SparrowOS/Apps/KeepAway/Run.CPP delete mode 100644 SparrowOS/Apps/Logic/Load.CPP delete mode 100644 SparrowOS/Apps/Logic/Run.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/free.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/restless.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Examples/signifies.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Load.CPP delete mode 100644 SparrowOS/Apps/MusicOrgan/Run.CPP delete mode 100644 SparrowOS/Apps/Pilgrims/Load.CPP delete mode 100644 SparrowOS/Apps/Pilgrims/Run.CPP delete mode 100644 SparrowOS/Apps/Span/Load.CPP delete mode 100644 SparrowOS/Apps/Span/Run.CPP delete mode 100644 SparrowOS/Apps/Tanks/Load.CPP delete mode 100644 SparrowOS/Apps/Tanks/Run.CPP delete mode 100644 SparrowOS/Apps/TimeClock/Load.CPP delete mode 100644 SparrowOS/Apps/Timeout/Load.CPP delete mode 100644 SparrowOS/Apps/Timeout/Run.CPP delete mode 100644 SparrowOS/Apps/Vocabulary/Load.CPP delete mode 100644 SparrowOS/Apps/Vocabulary/Run.CPP delete mode 100644 SparrowOS/Apps/X-Caliber/Load.CPP delete mode 100644 SparrowOS/Apps/X-Caliber/Run.CPP delete mode 100644 SparrowOS/Compiler/Compiler.BIN delete mode 100644 SparrowOS/Compiler/Compiler.MAP delete mode 100644 SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP delete mode 100644 SparrowOS/Demo/AcctExample/TAD/Registry.CPP delete mode 100644 SparrowOS/Demo/AcctExample/TSIDComputer.CPP delete mode 100644 SparrowOS/Demo/AcctExample/TSIDDft.CPP delete mode 100644 SparrowOS/Demo/Dsk/OrderedIO.CPP delete mode 100644 SparrowOS/Demo/Graphics/Blink.CPP delete mode 100644 SparrowOS/Demo/Graphics/Logo.CPP delete mode 100644 SparrowOS/Demo/Graphics/SpritePlot.CPP delete mode 100644 SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ delete mode 100644 SparrowOS/Demo/OldSchool/ReadMe.TXT delete mode 100644 SparrowOS/Demo/WebLogExample/access_090509.LOG delete mode 100644 SparrowOS/Demo/WebLogExample/access_090510.LOG delete mode 100644 SparrowOS/Doc/ChangeLog.TXT delete mode 100644 SparrowOS/Doc/Char.TXT delete mode 100644 SparrowOS/Doc/Confuse.TXT delete mode 100644 SparrowOS/Doc/Constitution.TXT delete mode 100644 SparrowOS/Doc/Ctrls.TXT delete mode 100644 SparrowOS/Doc/Customize.TXT delete mode 100644 SparrowOS/Doc/CutCorners.TXT delete mode 100644 SparrowOS/Doc/D3.TXT delete mode 100644 SparrowOS/Doc/Define.TXT delete mode 100644 SparrowOS/Doc/DemoIndex.TXT delete mode 100644 SparrowOS/Doc/Doc.TXT delete mode 100644 SparrowOS/Doc/GrSprite.TXT delete mode 100644 SparrowOS/Doc/Grub.TXT delete mode 100644 SparrowOS/Doc/Hash.TXT delete mode 100644 SparrowOS/Doc/HelpIndex.TXT delete mode 100644 SparrowOS/Doc/Lex.TXT delete mode 100644 SparrowOS/Doc/MultiCore.TXT delete mode 100644 SparrowOS/Doc/MultiTasking.TXT delete mode 100644 SparrowOS/Doc/Mysteries.TXT delete mode 100644 SparrowOS/Doc/NamedFrame.TXT delete mode 100644 SparrowOS/Doc/ODE.TXT delete mode 100644 SparrowOS/Doc/Snd.TXT delete mode 100644 SparrowOS/Doc/Splash.TXT delete mode 100644 SparrowOS/Doc/TSZ.TXT delete mode 100644 SparrowOS/Doc/TimeCycles.TXT delete mode 100644 SparrowOS/Doc/TimeDate.TXT delete mode 100644 SparrowOS/Doc/TrivialSolutions.TXT delete mode 100644 SparrowOS/Doc/Upgrade.TXT delete mode 100644 SparrowOS/Doc/Welcome.TXT delete mode 100644 SparrowOS/OSMain/Adam1.CPP delete mode 100644 SparrowOS/OSMain/Date.CPP delete mode 100644 SparrowOS/OSMain/Dsk/DskAddDev.CPP delete mode 100644 SparrowOS/OSMain/OSMain.MAP delete mode 100644 SparrowOS/OSMain/Static.HPP delete mode 100644 SparrowOS/ReadMe.TXT rename {SparrowOS => TempleOS}/Accts/Adam3.CPP (100%) rename {SparrowOS => TempleOS}/Accts/Adam3aLocalize.CPP (100%) rename {SparrowOS => TempleOS}/Accts/Adam3bPkgs.CPP (64%) create mode 100644 TempleOS/Accts/Adam3cSnd.CPP rename {SparrowOS => TempleOS}/Accts/Adam3dKeyPlugIns.CPP (93%) rename {SparrowOS => TempleOS}/Accts/Adam3eWrappers.CPP (63%) rename {SparrowOS => TempleOS}/Accts/Adam3fSys.CPP (79%) rename {SparrowOS => TempleOS}/Accts/DoItOnce.CPP (64%) rename {SparrowOS => TempleOS}/Accts/Install/Adam3fSys.CPP (89%) rename {SparrowOS => TempleOS}/Accts/Install/DoItOnce.CPP (64%) rename {SparrowOS => TempleOS}/Accts/PersonalMenu.TXT (89%) rename {SparrowOS => TempleOS}/Accts/PersonalNotes.TXT (100%) rename {SparrowOS => TempleOS}/Accts/SafeMode/Adam3.CPP (100%) rename {SparrowOS => TempleOS}/Accts/SafeMode/Adam3cSnd.CPP (100%) rename {SparrowOS => TempleOS}/Accts/SafeMode/Adam3fSys.CPP (87%) rename {SparrowOS => TempleOS}/Accts/SafeMode/DoItOnce.CPP (76%) create mode 100644 TempleOS/Accts/TS/Adam3.CPP create mode 100644 TempleOS/Accts/TS/Adam3bPkgs.CPP rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/Adam3dKeyPlugIns.CPP (82%) rename {SparrowOS => TempleOS}/Accts/TS/Adam3eWrappers.CPP (76%) rename {SparrowOS => TempleOS}/Accts/TS/Adam3fSys.CPP (67%) rename {SparrowOS => TempleOS}/Accts/TS/DoItOnce.CPP (64%) rename {SparrowOS => TempleOS}/Accts/TS/PersonalMenu.TXT (83%) rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TAD/Adam3aLocalize.CPP (94%) rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TAD/Archive/FileSysISO3.CPP (96%) rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TAD/Archive/Logo.TXT (86%) create mode 100644 TempleOS/Accts/TS/TAD/Archive/Marketing.TXT rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TAD/Archive/USB.CPP (98%) rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TAD/Archive/USB1a.CPP (89%) create mode 100644 TempleOS/Accts/TS/TAD/MakeDistro.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/abiding.CPP (91%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/abyss.CPP (87%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/almighty.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/appreciate.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/awake.CPP (91%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/bedewed.CPP (91%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/blinded.CPP (84%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/born.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/childish.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/compassions.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/completed.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/cosam.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/depending.CPP (80%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/despairing.CPP (74%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/determination.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/dialogue.CPP (98%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/disputing.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/doing.CPP (96%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/downfall.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/dream.CPP (86%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/efforts.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/elijah.CPP (98%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/environeth.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/epicurus.CPP (88%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/exalt.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/exiled.CPP (100%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/expedition.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/fairness.CPP (83%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/feigned.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/finger.CPP (97%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/first.CPP (91%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/fishermen.CPP (79%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/fixing.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/flung.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/fog.CPP (97%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/forasmuch.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/freaks.CPP (100%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/free.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/furnishing.CPP (99%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/good.CPP (91%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/gutenberg.CPP (87%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/happy.CPP (96%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/honestly.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/hope.CPP (97%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/image.CPP (81%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/kept.CPP (80%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/limit.CPP (96%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/mary.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/mightest.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/mildly.CPP (84%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/myrrh.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/nay.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/night.CPP (98%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/o.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/partake.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/permitted.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/personal.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/population.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/proponent.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/prosper.CPP (97%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/psalm.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/purpose.CPP (99%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/reasoning.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/reliance.CPP (86%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/reposes.CPP (100%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/restless.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/rifled.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/risen.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/satisfaction.CPP (71%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/scriptures.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/service.CPP (79%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/shield.CPP (94%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/signifies.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/silver.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/small.CPP (98%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/struggles.CPP (98%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/sustain.CPP (98%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/teachings.CPP (82%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/thereupon.CPP (90%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/thither.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/twins.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/valued.CPP (95%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/vengeance.CPP (96%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/verses.CPP (54%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/villa.CPP (100%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/wisdom.CPP (95%) rename {SparrowOS/Apps/MusicOrgan/Examples => TempleOS/Accts/TS/TAD/MusicOrgan}/witherto.CPP (82%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/worship.CPP (52%) create mode 100644 TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/you.CPP (100%) rename {SparrowOS => TempleOS}/Accts/TS/TAD/MusicOrgan/zip.CPP (78%) rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TAD/PersonalNotes.TXT (80%) create mode 100644 TempleOS/Accts/TS/TAD/Registry.CPP create mode 100644 TempleOS/Accts/TS/TAD/Test.CPP rename {SparrowOS/Demo/AcctExample => TempleOS/Accts/TS}/TSAdam.CPP (52%) rename SparrowOS/Demo/AcctExample/TSDistribute.CPP => TempleOS/Accts/TS/TSDistro.CPP (52%) create mode 100644 TempleOS/Accts/TS/Wb2/Blog.TXT create mode 100644 TempleOS/Accts/TS/Wb2/Games.TXT create mode 100644 TempleOS/Accts/TS/Wb2/Hymns.TXT create mode 100644 TempleOS/Accts/TS/Wb2/LineCnt.TXT create mode 100644 TempleOS/Accts/TS/Wb2/Menu.BMP create mode 100644 TempleOS/Accts/TS/Wb2/ScreenShots.TXT create mode 100644 TempleOS/Accts/TS/Wb2/Tanks.BMP create mode 100644 TempleOS/Accts/TS/Wb2/TempleOS.BMP create mode 100644 TempleOS/Accts/TS/Wb2/Tutorials.TXT create mode 100644 TempleOS/Accts/TS/Wb2/index.TXT rename {SparrowOS => TempleOS}/Adam/Adam2.CPP (65%) rename {SparrowOS => TempleOS}/Adam/AdamExt.HPP (90%) rename {SparrowOS => TempleOS}/Adam/AutoFile2a.CPP (99%) rename {SparrowOS => TempleOS}/Adam/BinRep.CPP (78%) rename {SparrowOS => TempleOS}/Adam/Boot/BootCD.CPP (90%) rename {SparrowOS => TempleOS}/Adam/Boot/BootHD.CPP (84%) rename {SparrowOS => TempleOS}/Adam/Boot/BootMHD.CPP (87%) rename {SparrowOS => TempleOS}/Adam/Boot/BootMHD2.CPP (95%) rename {SparrowOS => TempleOS}/Adam/Boot/InsBoot.CPP (70%) rename {SparrowOS => TempleOS}/Adam/Ctrls/Ctrls.CPP (73%) rename {SparrowOS => TempleOS}/Adam/Ctrls/Ctrls2a.CPP (100%) rename {SparrowOS => TempleOS}/Adam/Ctrls/CtrlsButton.CPP (93%) rename {SparrowOS => TempleOS}/Adam/Ctrls/CtrlsSlider.CPP (100%) rename {SparrowOS => TempleOS}/Adam/Dbg2a.CPP (67%) rename {SparrowOS => TempleOS}/Adam/DevInfo.CPP (59%) rename {SparrowOS => TempleOS}/Adam/Diff.CPP (67%) rename {SparrowOS => TempleOS}/Adam/Doc/Doc.CPP (57%) rename {SparrowOS => TempleOS}/Adam/Doc/DocBible.CPP (94%) rename {SparrowOS => TempleOS}/Adam/Doc/DocCodeTools.CPP (97%) rename {SparrowOS => TempleOS}/Adam/Doc/DocCtrlL.CPP (98%) rename {SparrowOS => TempleOS}/Adam/Doc/DocEd.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Doc/DocFile.CPP (98%) rename {SparrowOS => TempleOS}/Adam/Doc/DocHighlight.CPP (99%) rename {SparrowOS => TempleOS}/Adam/Doc/DocIDE.CPP (90%) rename {SparrowOS => TempleOS}/Adam/Doc/DocMacro.CPP (100%) rename {SparrowOS => TempleOS}/Adam/Doc/DocMain.CPP (64%) rename {SparrowOS => TempleOS}/Adam/Doc/DocNew.CPP (97%) create mode 100644 TempleOS/Adam/Doc/DocOpt.CPP rename {SparrowOS => TempleOS}/Adam/Doc/DocPlain.CPP (99%) rename {SparrowOS => TempleOS}/Adam/Doc/DocPopUp.CPP (95%) rename {SparrowOS => TempleOS}/Adam/Doc/DocRecalc.CPP (97%) rename {SparrowOS => TempleOS}/Adam/Doc/DocTree.CPP (100%) rename {SparrowOS => TempleOS}/Adam/DocDefines.CPP (67%) rename {SparrowOS => TempleOS}/Adam/Dsk/ChkDsk.CPP (91%) rename {SparrowOS => TempleOS}/Adam/Dsk/Dsk2.CPP (100%) rename {SparrowOS => TempleOS}/Adam/Dsk/Dsk2a.CPP (82%) rename {SparrowOS => TempleOS}/Adam/Dsk/Dsk2b.CPP (73%) rename {SparrowOS => TempleOS}/Adam/Dsk/DskCDDVD.CPP (92%) rename {SparrowOS => TempleOS}/Adam/Dsk/FileMgr.CPP (96%) rename {SparrowOS => TempleOS}/Adam/FileBMP.CPP (50%) rename {SparrowOS => TempleOS}/Adam/Gr/CSpriteBitMap.CPP (97%) rename {SparrowOS => TempleOS}/Adam/Gr/CSpriteEd.CPP (93%) rename {SparrowOS => TempleOS}/Adam/Gr/CSpriteMesh.CPP (99%) rename {SparrowOS => TempleOS}/Adam/Gr/CSpriteNew.CPP (94%) rename {SparrowOS => TempleOS}/Adam/Gr/CSpriteVect.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Gr/Gr.CPP (89%) rename {SparrowOS => TempleOS}/Adam/Gr/GrAsm.CPP (100%) rename {SparrowOS => TempleOS}/Adam/Gr/GrBitMap.CPP (99%) rename {SparrowOS => TempleOS}/Adam/Gr/GrCfg.CPP (77%) create mode 100644 TempleOS/Adam/Gr/GrChar.CPP rename {SparrowOS => TempleOS}/Adam/Gr/GrComposites.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Gr/GrDC.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Gr/GrPrimatives.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Gr/GrScreen.CPP (99%) rename {SparrowOS => TempleOS}/Adam/Gr/GrSpritePlot.CPP (87%) rename {SparrowOS => TempleOS}/Adam/Gr/GrVectMap.CPP (89%) rename {SparrowOS => TempleOS}/Adam/Gr/MathGr.CPP (93%) rename {SparrowOS => TempleOS}/Adam/Grep.CPP (89%) rename {SparrowOS => TempleOS}/Adam/Hash2a.CPP (95%) rename {SparrowOS => TempleOS}/Adam/HeapLog.CPP (99%) rename {SparrowOS => TempleOS}/Adam/LineCnt.CPP (89%) rename {SparrowOS => TempleOS}/Adam/LinkChk.CPP (78%) rename {SparrowOS => TempleOS}/Adam/LogIn.CPP (80%) rename {SparrowOS => TempleOS}/Adam/Math2a.CPP (100%) rename {SparrowOS => TempleOS}/Adam/MathODE.CPP (96%) rename {SparrowOS => TempleOS}/Adam/MemRep.CPP (93%) rename {SparrowOS => TempleOS}/Adam/Menu.CPP (99%) create mode 100644 TempleOS/Adam/Merge.CPP rename {SparrowOS => TempleOS}/Adam/Profiler.CPP (96%) rename {SparrowOS => TempleOS}/Adam/S2T.CPP (89%) rename {SparrowOS => TempleOS}/Adam/Snd/HDAudio.CPP (89%) rename {SparrowOS => TempleOS}/Adam/Snd/HDCfg.CPP (88%) rename {SparrowOS => TempleOS}/Adam/Snd/MathAudio.CPP (68%) rename {SparrowOS => TempleOS}/Adam/Snd/Music.CPP (99%) rename {SparrowOS => TempleOS}/Adam/Snd/Snd.CPP (89%) rename {SparrowOS => TempleOS}/Adam/Snd/SndEffects.CPP (83%) rename {SparrowOS => TempleOS}/Adam/Snd/SndFile.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Start.CPP (54%) rename {SparrowOS => TempleOS}/Adam/TaskSettings.CPP (100%) rename {SparrowOS => TempleOS}/Adam/ToHtml.CPP (92%) rename {SparrowOS => TempleOS}/Adam/ToTXT.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Training.CPP (96%) rename {SparrowOS => TempleOS}/Adam/Utils2a.CPP (94%) rename {SparrowOS => TempleOS}/Adam/WallPaper.CPP (90%) rename {SparrowOS => TempleOS}/Adam/Window.CPP (96%) rename {SparrowOS => TempleOS}/Adam/WordStat/WSDefs.DAT (100%) rename {SparrowOS => TempleOS}/Adam/WordStat/WSDict.CPP (92%) rename {SparrowOS => TempleOS}/Adam/WordStat/WSDictGen.CPP (94%) rename {SparrowOS => TempleOS}/Adam/WordStat/WSMain.CPP (96%) rename {SparrowOS => TempleOS}/Adam/WordStat/WSWords.DAT (100%) rename {SparrowOS => TempleOS}/Adam/WordStat/WordStat.CPP (81%) create mode 100644 TempleOS/Apps/AfterEgypt/AENotes.TXT rename {SparrowOS => TempleOS}/Apps/AfterEgypt/AENotesPart2.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/AESplash.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/AfterEgypt.CPP (91%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Battle.CPP (78%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics.CPP (88%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses01.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses02.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses04.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses05.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses06.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses07.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses08.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses10.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses12.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses13.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses14.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses15.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses16.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses17.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses18.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses19.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses20.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses21.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses22.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses23.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses24.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses25.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses26.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses27.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses28.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses29.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses30.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses31.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses32.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses34.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses35.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses36.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses37.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses38.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses39.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses40.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses42.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses43.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses44.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses45.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses46.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses47.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses48.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses49.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses50.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses52.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses53.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses54.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses55.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses56.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses57.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses58.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses59.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses60.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses61.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses62.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses63.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses64.TXT (100%) create mode 100644 TempleOS/Apps/AfterEgypt/Comics/Moses65.TXT create mode 100644 TempleOS/Apps/AfterEgypt/Comics/Moses66.TXT rename SparrowOS/Apps/AfterEgypt/Comics/Moses69.TXT => TempleOS/Apps/AfterEgypt/Comics/Moses67.TXT (73%) create mode 100644 TempleOS/Apps/AfterEgypt/Comics/Moses68.TXT rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses71.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses72.TXT (100%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Comics/Moses73.TXT (100%) rename SparrowOS/Apps/AfterEgypt/Comics/Moses66.TXT => TempleOS/Apps/AfterEgypt/Comics/Moses74.TXT (82%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Horeb.CPP (65%) create mode 100644 TempleOS/Apps/AfterEgypt/Load.CPP rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Map.CPP (97%) rename {SparrowOS => TempleOS}/Apps/AfterEgypt/Quail.CPP (91%) create mode 100644 TempleOS/Apps/AfterEgypt/Run.CPP rename {SparrowOS => TempleOS}/Apps/AfterEgypt/WaterRock.CPP (92%) rename {SparrowOS => TempleOS}/Apps/GrModels/BallGen.CPP (95%) create mode 100644 TempleOS/Apps/GrModels/Load.CPP rename {SparrowOS => TempleOS}/Apps/GrModels/ManGen.CPP (98%) rename {SparrowOS => TempleOS}/Apps/GrModels/Models.CPP (100%) create mode 100644 TempleOS/Apps/GrModels/Run.CPP rename {SparrowOS => TempleOS}/Apps/HolySpirit/HSNotes.TXT (93%) rename {SparrowOS => TempleOS}/Apps/HolySpirit/HolySpirit.CPP (93%) create mode 100644 TempleOS/Apps/HolySpirit/Vocab.TXT rename {SparrowOS => TempleOS}/Apps/KeepAway/KeepAway.CPP (99%) create mode 100644 TempleOS/Apps/KeepAway/Load.CPP create mode 100644 TempleOS/Apps/KeepAway/Run.CPP create mode 100644 TempleOS/Apps/Logic/Load.CPP rename {SparrowOS => TempleOS}/Apps/Logic/Logic.CPP (98%) create mode 100644 TempleOS/Apps/Logic/Run.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/abiding.CPP (91%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/abyss.CPP (87%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/almighty.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/appreciate.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/awake.CPP (91%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/battlehymnsolo.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/bedewed.CPP (91%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/blinded.CPP (84%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/born.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/childish.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/compassions.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/completed.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/cosam.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/depending.CPP (80%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/despairing.CPP (74%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/determination.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/dialogue.CPP (98%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/disputing.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/doing.CPP (96%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/downfall.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/dream.CPP (86%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/efforts.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/elijah.CPP (98%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/environeth.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/epicurus.CPP (88%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/exalt.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/exiled.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/expedition.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/fairness.CPP (83%) create mode 100644 TempleOS/Apps/MusicOrgan/Examples/feigned.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/finger.CPP (97%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/first.CPP (91%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/fishermen.CPP (79%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/fixing.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/flung.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/fog.CPP (97%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/forasmuch.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/freaks.CPP (100%) create mode 100644 TempleOS/Apps/MusicOrgan/Examples/free.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/furnishing.CPP (99%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/good.CPP (91%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/gutenberg.CPP (87%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/happy.CPP (96%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/honestly.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/hope.CPP (97%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/image.CPP (81%) create mode 100644 TempleOS/Apps/MusicOrgan/Examples/josh.CPP create mode 100644 TempleOS/Apps/MusicOrgan/Examples/keeping.CPP rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/kept.CPP (80%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/limit.CPP (96%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/mary.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/mightest.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/mildly.CPP (84%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/nay.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/night.CPP (98%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/o.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/partake.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/permitted.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/personal.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/population.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/proponent.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/prosper.CPP (97%) create mode 100644 TempleOS/Apps/MusicOrgan/Examples/psalm.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/purpose.CPP (99%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/reasoning.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/reliance.CPP (86%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/reposes.CPP (100%) create mode 100644 TempleOS/Apps/MusicOrgan/Examples/restless.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/rifled.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/risen.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/satisfaction.CPP (71%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/scriptures.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/service.CPP (79%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/shield.CPP (94%) create mode 100644 TempleOS/Apps/MusicOrgan/Examples/signifies.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/silver.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/small.CPP (98%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/struggles.CPP (98%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/sustain.CPP (98%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/teachings.CPP (82%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/thereupon.CPP (90%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/thither.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/twins.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/valued.CPP (95%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/vengeance.CPP (96%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/verses.CPP (54%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/villa.CPP (100%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/wisdom.CPP (95%) rename {SparrowOS/Accts/TS/TAD/MusicOrgan => TempleOS/Apps/MusicOrgan/Examples}/witherto.CPP (82%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/worship.CPP (52%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/you.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Examples/zip.CPP (78%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Help.TXT (59%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Install.CPP (100%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/JukeBox.CPP (96%) create mode 100644 TempleOS/Apps/MusicOrgan/Load.CPP rename {SparrowOS => TempleOS}/Apps/MusicOrgan/MakeSong.CPP (61%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/Organ.CPP (96%) rename {SparrowOS => TempleOS}/Apps/MusicOrgan/OrganCtrls.CPP (100%) create mode 100644 TempleOS/Apps/MusicOrgan/Run.CPP create mode 100644 TempleOS/Apps/Pilgrims/Load.CPP rename {SparrowOS => TempleOS}/Apps/Pilgrims/NewEngland.GRA (100%) rename {SparrowOS => TempleOS}/Apps/Pilgrims/Pilgrims.CPP (95%) create mode 100644 TempleOS/Apps/Pilgrims/Run.CPP rename {SparrowOS => TempleOS}/Apps/Span/Install.CPP (100%) create mode 100644 TempleOS/Apps/Span/Load.CPP create mode 100644 TempleOS/Apps/Span/Run.CPP rename {SparrowOS => TempleOS}/Apps/Span/Span.HPP (92%) rename {SparrowOS => TempleOS}/Apps/Span/SpanBridge1.CPP (100%) rename {SparrowOS => TempleOS}/Apps/Span/SpanDerive.CPP (100%) rename {SparrowOS => TempleOS}/Apps/Span/SpanMain.CPP (96%) rename {SparrowOS => TempleOS}/Apps/Span/SpanNew.CPP (97%) create mode 100644 TempleOS/Apps/Strut/Load.CPP create mode 100644 TempleOS/Apps/Strut/Run.CPP create mode 100644 TempleOS/Apps/Strut/Strut.CPP rename {SparrowOS => TempleOS}/Apps/Tanks/AIs/Human.CPP (94%) rename {SparrowOS => TempleOS}/Apps/Tanks/AIs/SimpleAI.CPP (90%) rename {SparrowOS => TempleOS}/Apps/Tanks/Install.CPP (100%) create mode 100644 TempleOS/Apps/Tanks/Load.CPP create mode 100644 TempleOS/Apps/Tanks/Run.CPP rename {SparrowOS => TempleOS}/Apps/Tanks/Tanks.CPP (93%) rename {SparrowOS => TempleOS}/Apps/TimeClock/Install.CPP (100%) create mode 100644 TempleOS/Apps/TimeClock/Load.CPP rename {SparrowOS => TempleOS}/Apps/TimeClock/TimeClk.CPP (98%) create mode 100644 TempleOS/Apps/Timeout/Load.CPP create mode 100644 TempleOS/Apps/Timeout/Run.CPP rename {SparrowOS => TempleOS}/Apps/Timeout/Timeout.CPP (97%) create mode 100644 TempleOS/Apps/Vocabulary/Load.CPP create mode 100644 TempleOS/Apps/Vocabulary/Run.CPP rename {SparrowOS => TempleOS}/Apps/Vocabulary/VocabQuiz.CPP (97%) create mode 100644 TempleOS/Apps/X-Caliber/Load.CPP create mode 100644 TempleOS/Apps/X-Caliber/Run.CPP rename {SparrowOS => TempleOS}/Apps/X-Caliber/X-Caliber.CPP (91%) rename {SparrowOS => TempleOS}/Apps/X-Caliber/XCCtrls.CPP (100%) rename {SparrowOS => TempleOS}/Compiler/Assembler.CPP (97%) rename {SparrowOS => TempleOS}/Compiler/BackEnd.CPP (99%) rename {SparrowOS => TempleOS}/Compiler/CmpAsm.CPP (99%) rename {SparrowOS => TempleOS}/Compiler/CmpDefs.HPP (65%) rename {SparrowOS => TempleOS}/Compiler/CmpExts.CPP (86%) rename {SparrowOS => TempleOS}/Compiler/CmpGlbls.CPP (100%) rename {SparrowOS => TempleOS}/Compiler/CmpInit.CPP (92%) rename {SparrowOS => TempleOS}/Compiler/CmpMain.CPP (92%) rename {SparrowOS => TempleOS}/Compiler/CmpQueVect.CPP (100%) rename {SparrowOS => TempleOS}/Compiler/CodeGen.CPP (91%) create mode 100644 TempleOS/Compiler/Compiler.BIN rename {SparrowOS => TempleOS}/Compiler/Compiler.HPP (85%) create mode 100644 TempleOS/Compiler/Compiler.MAP rename {SparrowOS => TempleOS}/Compiler/Compiler.PRJ (92%) rename {SparrowOS => TempleOS}/Compiler/Directives.CPP (92%) rename {SparrowOS => TempleOS}/Compiler/ExpParser.CPP (97%) rename {SparrowOS => TempleOS}/Compiler/Hash1b.CPP (88%) rename {SparrowOS => TempleOS}/Compiler/Lex.CPP (91%) rename {SparrowOS => TempleOS}/Compiler/OpCodes.TXT (97%) rename {SparrowOS => TempleOS}/Compiler/OptPass012.CPP (99%) rename {SparrowOS => TempleOS}/Compiler/OptPass3.CPP (99%) rename {SparrowOS => TempleOS}/Compiler/OptPass4.CPP (99%) rename {SparrowOS => TempleOS}/Compiler/OptPass5.CPP (100%) rename {SparrowOS => TempleOS}/Compiler/OptPass6.CPP (100%) rename {SparrowOS => TempleOS}/Compiler/OptPass789A.CPP (97%) rename {SparrowOS => TempleOS}/Compiler/StmtParser.CPP (92%) rename {SparrowOS => TempleOS}/Compiler/Unassembler.CPP (93%) create mode 100644 TempleOS/Demo/AcctExample/Adam3.CPP create mode 100644 TempleOS/Demo/AcctExample/Adam3bPkgs.CPP rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/Adam3dKeyPlugIns.CPP (82%) rename {SparrowOS => TempleOS}/Demo/AcctExample/Adam3eWrappers.CPP (76%) rename {SparrowOS => TempleOS}/Demo/AcctExample/Adam3fSys.CPP (67%) rename {SparrowOS => TempleOS}/Demo/AcctExample/DoItOnce.CPP (64%) rename {SparrowOS => TempleOS}/Demo/AcctExample/PersonalMenu.TXT (83%) rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TAD/Adam3aLocalize.CPP (94%) rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TAD/Archive/FileSysISO3.CPP (96%) rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TAD/Archive/Logo.TXT (86%) create mode 100644 TempleOS/Demo/AcctExample/TAD/Archive/Marketing.TXT rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TAD/Archive/USB.CPP (98%) rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TAD/Archive/USB1a.CPP (89%) create mode 100644 TempleOS/Demo/AcctExample/TAD/MakeDistro.CPP rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TAD/PersonalNotes.TXT (80%) create mode 100644 TempleOS/Demo/AcctExample/TAD/Registry.CPP rename {SparrowOS/Accts/TS => TempleOS/Demo/AcctExample}/TSAdam.CPP (52%) rename SparrowOS/Accts/TS/TSDistribute.CPP => TempleOS/Demo/AcctExample/TSDistro.CPP (52%) rename {SparrowOS => TempleOS}/Demo/Asm/AsmAndC.CPP (76%) rename {SparrowOS => TempleOS}/Demo/Asm/AsmAndC2.CPP (82%) rename {SparrowOS => TempleOS}/Demo/Asm/AsmHelloWorld.CPP (81%) rename {SparrowOS => TempleOS}/Demo/Asm/BuzzFizz.CPP (91%) rename {SparrowOS => TempleOS}/Demo/Asm/DivByHand.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Asm/MulByHand.CPP (82%) rename {SparrowOS => TempleOS}/Demo/Asm/PutDec.CPP (87%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFDir.AUT (77%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFEd.AUT (87%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFEd.TXT (100%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFPopUp.CPP (100%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFPopUpWait.AUT (100%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFProfile.AUT (75%) rename {SparrowOS => TempleOS}/Demo/AutoFile/AFSetIP.CPP (100%) rename {SparrowOS => TempleOS}/Demo/ClassMeta.CPP (93%) rename {SparrowOS => TempleOS}/Demo/CompileDemo.CPP (100%) rename {SparrowOS => TempleOS}/Demo/DateTime.CPP (78%) rename {SparrowOS => TempleOS}/Demo/DbgDemo.CPP (70%) rename {SparrowOS => TempleOS}/Demo/Define.CPP (77%) rename {SparrowOS => TempleOS}/Demo/Digits.CPP (92%) rename {SparrowOS => TempleOS}/Demo/Doc/CallBack.CPP (80%) rename {SparrowOS => TempleOS}/Demo/Doc/CallBackAux2.CPP (72%) rename {SparrowOS => TempleOS}/Demo/Doc/CursorMove.CPP (89%) rename {SparrowOS => TempleOS}/Demo/Doc/Data.CPP (93%) rename {SparrowOS => TempleOS}/Demo/Doc/DefineStr.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Doc/DemoDoc.TXT (100%) rename {SparrowOS => TempleOS}/Demo/Doc/FileRead.CPP (89%) rename {SparrowOS => TempleOS}/Demo/Doc/Form.CPP (86%) rename {SparrowOS => TempleOS}/Demo/Doc/MenuButton.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Doc/MenuSprite.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Doc/TextDemo.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Doc/TreeDemo.CPP (89%) rename {SparrowOS => TempleOS}/Demo/Doc/UnusedDefine.CPP (92%) rename {SparrowOS => TempleOS}/Demo/Dsk/DataBase.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Dsk/FPrintF.CPP (85%) create mode 100644 TempleOS/Demo/Dsk/OrderedIO.CPP rename {SparrowOS => TempleOS}/Demo/Dsk/Raw.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Dsk/UnusedSpaceRep.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Exceptions.CPP (89%) rename {SparrowOS => TempleOS}/Demo/ExtendedChars.CPP (68%) rename {SparrowOS => TempleOS}/Demo/GameStarters/BigGuns.CPP (95%) rename {SparrowOS => TempleOS}/Demo/GameStarters/BirdLand.CPP (86%) rename {SparrowOS => TempleOS}/Demo/GameStarters/BlackDiamond.CPP (98%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Bomber.CPP (94%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Chess.CPP (98%) rename {SparrowOS => TempleOS}/Demo/GameStarters/ChessNet.CPP (96%) rename {SparrowOS => TempleOS}/Demo/GameStarters/CircleTrace.CPP (92%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Coach.CPP (88%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Collision.CPP (95%) rename {SparrowOS => TempleOS}/Demo/GameStarters/DunGen.CPP (93%) rename {SparrowOS => TempleOS}/Demo/GameStarters/EagleDive.CPP (96%) rename {SparrowOS => TempleOS}/Demo/GameStarters/FPS.CPP (95%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Halogen.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/MassSpring.CPP (98%) rename {SparrowOS => TempleOS}/Demo/GameStarters/MissileDefense.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Navy.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/RainDrops.CPP (98%) rename {SparrowOS => TempleOS}/Demo/GameStarters/RawHide.CPP (95%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Rocket.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/RocketScience.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Rocks.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/SpaceShip.CPP (96%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Squirt.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Stadium/Stadium.CPP (90%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Stadium/Stadium.GRA (100%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Stadium/Stadium.TXT (100%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Stadium/StadiumGen.CPP (78%) rename {SparrowOS => TempleOS}/Demo/GameStarters/TheDead.CPP (98%) rename {SparrowOS => TempleOS}/Demo/GameStarters/TicTacToe.CPP (100%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Varoom.CPP (98%) rename {SparrowOS => TempleOS}/Demo/GameStarters/WarGame.CPP (92%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Wenceslas.CPP (97%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Whap.CPP (100%) rename {SparrowOS => TempleOS}/Demo/GameStarters/Zing.CPP (94%) rename {SparrowOS => TempleOS}/Demo/GameStarters/ZoneOut.CPP (94%) rename {SparrowOS => TempleOS}/Demo/GlblVars.CPP (71%) rename {SparrowOS => TempleOS}/Demo/Graphics/3DPoly.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/BSpline.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Bling.CPP (97%) rename {SparrowOS => TempleOS}/Demo/Graphics/Blot.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Bounce.CPP (91%) rename {SparrowOS => TempleOS}/Demo/Graphics/Box.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/CPUPlot.CPP (92%) rename {SparrowOS => TempleOS}/Demo/Graphics/Camp.CPP (97%) rename {SparrowOS => TempleOS}/Demo/Graphics/CaptureScreen.CPP (55%) rename {SparrowOS => TempleOS}/Demo/Graphics/Cartesian.CPP (88%) rename {SparrowOS => TempleOS}/Demo/Graphics/CharGraphics.CPP (58%) rename {SparrowOS => TempleOS}/Demo/Graphics/Circuit.CPP (99%) rename {SparrowOS => TempleOS}/Demo/Graphics/CommonAncestor.CPP (94%) rename {SparrowOS => TempleOS}/Demo/Graphics/Dither.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Doodle.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/DotNet.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/EdCSprite.CPP (98%) rename {SparrowOS => TempleOS}/Demo/Graphics/Extents.CPP (90%) rename {SparrowOS => TempleOS}/Demo/Graphics/Flowers.CPP (98%) rename {SparrowOS => TempleOS}/Demo/Graphics/FontEd.CPP (86%) rename {SparrowOS => TempleOS}/Demo/Graphics/Golf.CPP (78%) rename {SparrowOS => TempleOS}/Demo/Graphics/Hanoi.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Life.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Lines.CPP (100%) create mode 100644 TempleOS/Demo/Graphics/Logo.CPP rename {SparrowOS => TempleOS}/Demo/Graphics/LowPassFilter.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/MathAudioDemo.CPP (95%) rename {SparrowOS => TempleOS}/Demo/Graphics/Mountain.CPP (94%) rename {SparrowOS => TempleOS}/Demo/Graphics/NeatTrick.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Palette.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Pic2ASCII.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Pick.CPP (98%) rename {SparrowOS => TempleOS}/Demo/Graphics/Pick3D.CPP (98%) rename {SparrowOS => TempleOS}/Demo/Graphics/PixelCollision.CPP (94%) rename {SparrowOS => TempleOS}/Demo/Graphics/PoleZeros.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/PredatorPrey.CPP (96%) rename {SparrowOS => TempleOS}/Demo/Graphics/RotateTank.CPP (90%) rename {SparrowOS => TempleOS}/Demo/Graphics/ScrollBars.CPP (98%) rename {SparrowOS => TempleOS}/Demo/Graphics/Shading.CPP (95%) rename {SparrowOS => TempleOS}/Demo/Graphics/Shadow.CPP (96%) rename {SparrowOS => TempleOS}/Demo/Graphics/SliderCtrl.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Speedline.CPP (100%) create mode 100644 TempleOS/Demo/Graphics/SpritePlot.CPP rename {SparrowOS => TempleOS}/Demo/Graphics/SpritePlot3D.CPP (96%) rename {SparrowOS => TempleOS}/Demo/Graphics/SpritePut.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/SpritePutExt.CPP (77%) rename {SparrowOS => TempleOS}/Demo/Graphics/SpriteText.CPP (84%) rename {SparrowOS => TempleOS}/Demo/Graphics/Symmetry.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Graphics/Transform.CPP (98%) rename {SparrowOS => TempleOS}/Demo/Graphics/WallPaperCtrl.CPP (93%) rename SparrowOS/Demo/Graphics/MyWallPaper.CPP => TempleOS/Demo/Graphics/WallPaperFish.CPP (97%) rename {SparrowOS => TempleOS}/Demo/Graphics/WinZBuf.CPP (100%) rename {SparrowOS => TempleOS}/Demo/KeyBitMap.CPP (95%) create mode 100644 TempleOS/Demo/Lectures/64BitAsmQuiz.TXT rename {SparrowOS => TempleOS}/Demo/Lectures/AndNotMod.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Lectures/FixedPoint.CPP (73%) rename {SparrowOS => TempleOS}/Demo/Lectures/FixedPointAdvanced.CPP (97%) rename {SparrowOS => TempleOS}/Demo/Lectures/GraphicsCPULoad.CPP (94%) rename {SparrowOS => TempleOS}/Demo/Lectures/InterruptDemo.CPP (92%) rename {SparrowOS => TempleOS}/Demo/Lectures/MiniCompiler.CPP (81%) rename {SparrowOS => TempleOS}/Demo/Lectures/MiniGrLib.CPP (80%) rename {SparrowOS => TempleOS}/Demo/Lectures/Optimization.CPP (90%) rename {SparrowOS => TempleOS}/Demo/Lectures/PCIInterrupts.CPP (95%) rename {SparrowOS => TempleOS}/Demo/Lectures/PageTableEntries1.CPP (87%) rename {SparrowOS => TempleOS}/Demo/Lectures/PageTableEntries2.CPP (87%) rename {SparrowOS => TempleOS}/Demo/Lectures/Ring3.CPP (83%) rename {SparrowOS => TempleOS}/Demo/Lectures/ScreenMemory.CPP (77%) rename {SparrowOS => TempleOS}/Demo/Lectures/Spinning.CPP (92%) rename {SparrowOS => TempleOS}/Demo/Lectures/Uncached.CPP (100%) rename {SparrowOS => TempleOS}/Demo/MagicPairs.CPP (99%) create mode 100644 TempleOS/Demo/MakeDistro.CPP rename {SparrowOS => TempleOS}/Demo/Maze.CPP (92%) rename {SparrowOS => TempleOS}/Demo/MsgLoop.CPP (100%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Clouds.CPP (97%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Interrupts.CPP (74%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Layers3DJob.CPP (96%) rename {SparrowOS => TempleOS}/Demo/MultiCore/LayersSpawn.CPP (95%) rename {SparrowOS => TempleOS}/Demo/MultiCore/LoadTest.CPP (87%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Lock.CPP (100%) rename {SparrowOS => TempleOS}/Demo/MultiCore/MPAdd.CPP (94%) rename {SparrowOS => TempleOS}/Demo/MultiCore/MPPrintF.CPP (100%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Noise.CPP (96%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Palindrome.CPP (97%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Primes.CPP (98%) rename {SparrowOS => TempleOS}/Demo/MultiCore/RadixSort.CPP (97%) rename {SparrowOS => TempleOS}/Demo/MultiCore/Sort.CPP (96%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo1/MD1.CPP (100%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo1/MD2.CPP (100%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo1/MDMain.CPP (100%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo1/ModuleDemo.HPP (100%) create mode 100644 TempleOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo1/ReadMe.TXT (100%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo2/MakeFile.CPP (68%) create mode 100644 TempleOS/Demo/OldSchool/Demo2/OD1.BIN rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo2/OD1.PRJ (77%) create mode 100644 TempleOS/Demo/OldSchool/Demo2/OD2.BIN rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo2/OD2.PRJ (84%) create mode 100644 TempleOS/Demo/OldSchool/Demo2/ODMain.BIN rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo2/ODMain.PRJ (82%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo2/ObjDemo.HPP (100%) rename {SparrowOS => TempleOS}/Demo/OldSchool/Demo2/ReadMe.TXT (83%) create mode 100644 TempleOS/Demo/OldSchool/ReadMe.TXT rename {SparrowOS => TempleOS}/Demo/ParenWarn.CPP (100%) rename {SparrowOS => TempleOS}/Demo/PhoneNumWords.CPP (86%) rename {SparrowOS => TempleOS}/Demo/PrintF.CPP (64%) rename {SparrowOS => TempleOS}/Demo/Progress.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Prompt.CPP (81%) rename {SparrowOS => TempleOS}/Demo/PullDownMenu.CPP (100%) rename {SparrowOS => TempleOS}/Demo/RegistryDemo.CPP (97%) rename {SparrowOS => TempleOS}/Demo/ScreenCodes.CPP (57%) rename {SparrowOS => TempleOS}/Demo/Shared/TreeDemoJoin.CPP (92%) rename {SparrowOS => TempleOS}/Demo/Snd/ASCIIOrgan.CPP (96%) rename {SparrowOS => TempleOS}/Demo/Snd/BeatFreq.CPP (100%) create mode 100644 TempleOS/Demo/Snd/Chords.CPP rename {SparrowOS => TempleOS}/Demo/Snd/Echo.CPP (100%) create mode 100644 TempleOS/Demo/Snd/Guitar.CPP rename {SparrowOS => TempleOS}/Demo/Snd/MorseCode.CPP (90%) rename {SparrowOS => TempleOS}/Demo/Snd/OhGreat.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Snd/PolyPhonic.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Snd/Record.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Snd/SndScope.CPP (100%) rename {SparrowOS => TempleOS}/Demo/Snd/Synth.CPP (97%) rename {SparrowOS => TempleOS}/Demo/Snd/WaterFowl.CPP (93%) rename {SparrowOS => TempleOS}/Demo/Spy.CPP (100%) rename {SparrowOS => TempleOS}/Demo/StkGrow.CPP (89%) rename {SparrowOS => TempleOS}/Demo/SubIntAccess.CPP (70%) rename {SparrowOS => TempleOS}/Demo/SuggestSpelling.CPP (92%) rename {SparrowOS => TempleOS}/Demo/TimeIns.CPP (100%) rename {SparrowOS => TempleOS}/Demo/WebLogExample/WebLogRep.CPP (95%) rename {SparrowOS => TempleOS}/Demo/WebLogExample/WebLogRep.TXT (85%) rename {SparrowOS => TempleOS}/Demo/WebLogExample/WebLogScramble.CPP (86%) create mode 100644 TempleOS/Demo/WebLogExample/access_090509.LOG create mode 100644 TempleOS/Demo/WebLogExample/access_090510.LOG rename {SparrowOS => TempleOS}/Demo/WinMgr2.CPP (89%) rename {SparrowOS => TempleOS}/Demo/WordSearch.CPP (93%) rename {SparrowOS => TempleOS}/Doc/Acknowledgements.TXT (63%) rename {SparrowOS => TempleOS}/Doc/AutoFile.TXT (80%) rename {SparrowOS => TempleOS}/Doc/Bit.TXT (100%) rename {SparrowOS => TempleOS}/Doc/Boot.TXT (51%) create mode 100644 TempleOS/Doc/ChangeLog.TXT create mode 100644 TempleOS/Doc/Char.TXT create mode 100644 TempleOS/Doc/Charter.TXT rename {SparrowOS => TempleOS}/Doc/CmdLine.TXT (85%) create mode 100644 TempleOS/Doc/Confuse.TXT rename {SparrowOS => TempleOS}/Doc/CtrlL.TXT (89%) create mode 100644 TempleOS/Doc/Ctrls.TXT create mode 100644 TempleOS/Doc/Customize.TXT create mode 100644 TempleOS/Doc/CutCorners.TXT create mode 100644 TempleOS/Doc/D3.TXT rename {SparrowOS => TempleOS}/Doc/Dbg.TXT (63%) create mode 100644 TempleOS/Doc/Define.TXT create mode 100644 TempleOS/Doc/DemoIndex.TXT rename {SparrowOS => TempleOS}/Doc/Differences.TXT (74%) rename {SparrowOS => TempleOS}/Doc/Directives.TXT (71%) create mode 100644 TempleOS/Doc/Doc.TXT rename {SparrowOS => TempleOS}/Doc/Dollar.TXT (87%) rename {SparrowOS => TempleOS}/Doc/EdPullDown.TXT (100%) rename {SparrowOS => TempleOS}/Doc/Features.TXT (83%) rename {SparrowOS => TempleOS}/Doc/FileMgr.TXT (55%) rename {SparrowOS => TempleOS}/Doc/FileMgrPullDown.TXT (100%) rename {SparrowOS => TempleOS}/Doc/Glossary.TXT (75%) rename {SparrowOS => TempleOS}/Doc/Graphics.TXT (61%) create mode 100644 TempleOS/Doc/Grub.TXT rename {SparrowOS => TempleOS}/Doc/GuideLines.TXT (59%) create mode 100644 TempleOS/Doc/Hash.TXT create mode 100644 TempleOS/Doc/HelpIndex.TXT rename {SparrowOS => TempleOS}/Doc/HelpSystem.TXT (100%) rename {SparrowOS => TempleOS}/Doc/ImportExports.TXT (89%) rename {SparrowOS => TempleOS}/Doc/InputPointer.TXT (80%) rename {SparrowOS => TempleOS}/Doc/Install.TXT (55%) rename {SparrowOS => TempleOS}/Doc/KeyBoard.TXT (80%) create mode 100644 TempleOS/Doc/Lex.TXT rename {SparrowOS => TempleOS}/Doc/Mem.TXT (78%) rename {SparrowOS => TempleOS}/Doc/Menus.TXT (91%) create mode 100644 TempleOS/Doc/MultiCore.TXT create mode 100644 TempleOS/Doc/MultiTasking.TXT create mode 100644 TempleOS/Doc/Mysteries.TXT create mode 100644 TempleOS/Doc/NamedFrame.TXT rename {SparrowOS => TempleOS}/Doc/NewFileSystem.TXT (58%) create mode 100644 TempleOS/Doc/ODE.TXT rename {SparrowOS => TempleOS}/Doc/Options.TXT (69%) rename {SparrowOS => TempleOS}/Doc/Profiler.TXT (59%) rename {SparrowOS => TempleOS}/Doc/Que.TXT (100%) rename {SparrowOS => TempleOS}/Doc/Quirks.TXT (81%) rename {SparrowOS => TempleOS}/Doc/Requirements.TXT (93%) create mode 100644 TempleOS/Doc/Snd.TXT create mode 100644 TempleOS/Doc/Splash.TXT create mode 100644 TempleOS/Doc/Sprite.TXT rename {SparrowOS => TempleOS}/Doc/Start.TXT (78%) rename {SparrowOS => TempleOS}/Doc/Strategy.TXT (76%) rename {SparrowOS => TempleOS}/Doc/SysPgmGuide.TXT (71%) create mode 100644 TempleOS/Doc/TSZ.TXT create mode 100644 TempleOS/Doc/TimeCycles.TXT create mode 100644 TempleOS/Doc/TimeDate.TXT rename {SparrowOS => TempleOS}/Doc/TimeHPET.TXT (100%) rename {SparrowOS => TempleOS}/Doc/TimeJiffy.TXT (100%) rename {SparrowOS => TempleOS}/Doc/Tips.TXT (79%) rename {SparrowOS => TempleOS}/Doc/Transform.TXT (67%) create mode 100644 TempleOS/Doc/TrivialSolutions.TXT create mode 100644 TempleOS/Doc/Upgrade.TXT create mode 100644 TempleOS/Doc/Welcome.TXT rename {SparrowOS => TempleOS}/Doc/WordStat.TXT (79%) create mode 100644 TempleOS/Kernel/AOT.HPP rename SparrowOS/OSMain/StaticAdam.HPP => TempleOS/Kernel/AOTAdam.HPP (100%) create mode 100644 TempleOS/Kernel/Adam1.CPP rename {SparrowOS/OSMain => TempleOS/Kernel}/Adam1a.HPP (89%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Adam1b.HPP (94%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Adam1c.HPP (85%) rename {SparrowOS/OSMain => TempleOS/Kernel}/BIOS32.CPP (69%) rename {SparrowOS/OSMain => TempleOS/Kernel}/BootDefs.HPP (75%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Compress.CPP (98%) create mode 100644 TempleOS/Kernel/Date.CPP rename {SparrowOS/OSMain => TempleOS/Kernel}/Dbg1a.CPP (57%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Define1a.CPP (70%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Display.CPP (92%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/ATADef.HPP (86%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/Dsk1a.CPP (77%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/Dsk1b.CPP (63%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/Dsk1c.CPP (92%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/DskATA.CPP (66%) create mode 100644 TempleOS/Kernel/Dsk/DskAddDev.CPP rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/DskCFile.CPP (84%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/DskCache.CPP (91%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/DskDir.CPP (97%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/DskStr.CPP (82%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/FileSysFAT.CPP (96%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/FileSysISO1.CPP (91%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Dsk/FileSysNative.CPP (93%) rename {SparrowOS/OSMain => TempleOS/Kernel}/EdLite.CPP (81%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Except.CPP (95%) rename {SparrowOS/OSMain => TempleOS/Kernel}/FIFO.CPP (100%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Font8x8.CPP (99%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Hash1a.CPP (90%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Interrupts.CPP (63%) rename SparrowOS/OSMain/OSCfg.CPP => TempleOS/Kernel/KCfg.CPP (52%) rename SparrowOS/OSMain/OSEnd.CPP => TempleOS/Kernel/KEnd.CPP (79%) rename SparrowOS/OSMain/OSExts.CPP => TempleOS/Kernel/KExts.CPP (81%) rename SparrowOS/OSMain/OSGlbls.CPP => TempleOS/Kernel/KGlbls.CPP (85%) rename SparrowOS/OSMain/OSStart.CPP => TempleOS/Kernel/KStart.CPP (84%) rename {SparrowOS/OSMain => TempleOS/Kernel}/KbdMouse/InputPointer.CPP (100%) rename {SparrowOS/OSMain => TempleOS/Kernel}/KbdMouse/Keyboard.CPP (96%) rename {SparrowOS/OSMain => TempleOS/Kernel}/KbdMouse/Message.CPP (96%) rename {SparrowOS/OSMain => TempleOS/Kernel}/KbdMouse/Mouse.CPP (99%) create mode 100644 TempleOS/Kernel/Kernel.MAP rename SparrowOS/OSMain/OSMain.PRJ => TempleOS/Kernel/Kernel.PRJ (66%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Math1a.CPP (100%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Math1b.CPP (97%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Memory.CPP (94%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Misc1a.CPP (89%) rename {SparrowOS/OSMain => TempleOS/Kernel}/MultiProc.CPP (96%) rename {SparrowOS/OSMain => TempleOS/Kernel}/PSect.CPP (84%) rename {SparrowOS/OSMain => TempleOS/Kernel}/QSort.CPP (92%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Scheduler.CPP (93%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Str1a.CPP (77%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Task1a.CPP (91%) rename {SparrowOS/OSMain => TempleOS/Kernel}/TaskCmd.CPP (100%) rename {SparrowOS/OSMain => TempleOS/Kernel}/Utils1a.CPP (100%) rename {SparrowOS => TempleOS}/Misc/Bible.TXT (100%) rename {SparrowOS => TempleOS}/Misc/Dollar.CPP (90%) rename {SparrowOS => TempleOS}/Misc/OSTestSuite.CPP (75%) rename {SparrowOS => TempleOS}/Misc/PCIDevices.TXT (87%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour.AUT (89%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour1.AUT (97%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour2.AUT (90%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour3.AUT (91%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour4.AUT (93%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour5.AUT (66%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour6.AUT (95%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour7.AUT (92%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour8.AUT (96%) rename {SparrowOS => TempleOS}/Misc/Tour/Tour9.AUT (94%) rename {SparrowOS => TempleOS}/Misc/Tour/TourA.AUT (65%) create mode 100644 TempleOS/ReadMe.TXT rename Windows/{TSZSetUp.ZIP => TSZSetUp.zip} (51%) diff --git a/0000Boot/0000Kernel.BIN.C b/0000Boot/0000Kernel.BIN.C new file mode 100644 index 0000000000000000000000000000000000000000..eaf58db0732c119a7fc54054ae2ed8346f197c29 GIT binary patch literal 222896 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 literal 0 HcmV?d00001 diff --git a/0000Boot/0000OSMain.BIN.C b/0000Boot/0000OSMain.BIN.C deleted file mode 100644 index f283ba3ed71d18d71a4dab0934870a7e5c420cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217760 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 M-$69^Ha9o{0GyCo0RR91 diff --git a/0000Boot/BootCD.BIN b/0000Boot/BootCD.BIN index d2211b5cd96a1a4ee775104826112f705eb4d826..5ecf30627b14e9125a631628d3227c175a602346 100644 GIT binary patch delta 202 zcmeyv|C4`$q3$|{gn9-B0R~0}WZ;vZn39>7t`L%%Tac6LAItz@Oia*Y%$?XD8W+Lv zV(7AmEAXPmF(mQP#7$#dXDymKa2`ubmNK0n~X-&73 b1&New(0d{DKO*wc!nE{m*^bTijKypKOVdCx delta 199 zcmey#|A&8qq5cMjgn9-B0R~0}WZ;vZn39>7t`J<1SX7i>?jOtmWlfCJW6Yk|8yXtP z@M7=(*Z=mpGrZXPf5!p#w7vsr#wXLedHWa`7}9nyFgP%z8DC2K{xNOw1ctQq<5Qr< zFYIDS?-uQ0U|Il-(b6~OUWCun?)oCE!LXaj#kfwA?S&&G{2E7+@ Y|05zFtxQYrmhIZy##qcYc>^OC06_IY(f|Me diff --git a/0000Boot/BootMHD2.BIN.C b/0000Boot/BootMHD2.BIN.C index eba93f584d42e79b4748d3fff6dfd20d2417e2cb..b5107f4b9e055a32838440cd6ccca834fc62f23d 100644 GIT binary patch delta 87 zcmX@aa*SnyEThvzIVHA`)ZBuc)QRr;ye?e4MtTY^MVV!(3a%5IcZ)E1J28NPJ(y%* k=rU=T9LTs=*oo=j3zl?dRu?7)hV)L>7Dfh!$+AqU0OG3@rT_o{ delta 99 zcmX@ca)@PuETi2-IVJYsg2bYt{PKxz`qCa;yheHoE=8GTsS2K4yj;A&sX3|1C7Jno xRud<#75XO6$N&Z!!C;DkW8y@;$#skq`0bbuzFtask_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.857; - try { - while (!ScanKey) { - Play("W13eEDEFqDDeEDEDqCC"); - Play("eD2G3BCqDsGGGGeD2G3BCqDsGGGG"); - Play("qF!FFetREA!qG!sG!FG!!F!GEGEqC"); - Play("F!FFetREA!qG!sG!FG!!F!GEGEqC"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP deleted file mode 100644 index 0f6ed66..0000000 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP +++ /dev/null @@ -1,34 +0,0 @@ -//8 has words -U0 Song() -{ - CTask *task; - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.902; - try { - task=PopUpViewStr( - "$LK,"Romans,8:28","BF:Romans,8:28"$\n" - ); - TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); - while (!ScanKey) { - Play("W13qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G", - "Free \0will... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0fail.\n\0 \0 \0 \0"); - Play("3qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G", - "God \0still... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0hail.\n\0 \0 \0 \0"); - Play("3qD2G3eA2G3qCetEC!AqBsA!!C!ACqA", - "All \0things \0work \0for \0good... \0to \0the \0Lord.\n\0 \0 \0 \0 \0 \0 \0"); - Play("D2G3eA2G3qCetEC!AqBsA!!C!ACqA", - "It's \0all \0good... \0 \0 \0as\0 \0sured.\n\0 \0 \0 \0 \0 \0 \0"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP deleted file mode 100644 index 3e4c82c..0000000 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP +++ /dev/null @@ -1,20 +0,0 @@ -//7 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.902; - try { - while (!ScanKey) { - Play("W12q.GeG3qB2GG3A2GeFF"); - Play("q.GeG3qB2GG3A2GeFF"); - Play("3CD!qGB!AF!C!FeDB"); - Play("CD!qGB!AF!C!FeDB"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP deleted file mode 100644 index 31f97d6..0000000 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP +++ /dev/null @@ -1,22 +0,0 @@ -//8 has words -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.151; - music_stacatto_factor= 0.780; - try { - while (!ScanKey) { - Play("W13eCsBBeA#BCDCBCsBBeA#BCDCB"); - Play("etDCBeCBCBABetDCBeCBCBAB"); - Play("!A2G!3sBG!B!GFC!FCBFBFetF!GAsFGF!G!qG!D", - "I \0have \0kept \0 \0the \0 \0Lord's \0 \0day, \0 \0 \0 \0 \0 \0 \0 \0 \0all \0 \0 \0 \0day!\n\0 \0"); - Play("!eA2G!3sBG!B!GFC!FCBFBFetF!GAsFGF!G!qG!D", - "O\0kay, \0 \0God... \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0where's \0 \0 \0is \0 \0my \0 \0pay?\n\0 \0"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP deleted file mode 100644 index 05426f7..0000000 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP +++ /dev/null @@ -1,21 +0,0 @@ -//8 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 3.360; - music_stacatto_factor= 0.846; - try { - while (!ScanKey) { - Play("M5/4"); - Play("W12qGGG3qtCBA2qGGG3qtCetBBqtA"); - Play("qEeCCqDqtCBAM4/4"); - Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE"); - Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP deleted file mode 100644 index f54fc5d..0000000 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP +++ /dev/null @@ -1,19 +0,0 @@ -//9 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 1.710; - music_stacatto_factor= 0.736; - try { - while (!ScanKey) { - Play("W13sDDDACCADDACCAe.DsCCC2G3FD2G3FD2G3CCAe.D"); - Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE"); - Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/signifies.CPP b/SparrowOS/Accts/TS/TAD/MusicOrgan/signifies.CPP deleted file mode 100644 index 4e38407..0000000 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/signifies.CPP +++ /dev/null @@ -1,20 +0,0 @@ -//8 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.902; - try { - while (!ScanKey) { - Play("W13hDeDA2qG3hDeD2GqF"); - Play("3hDeD2sFG3qAhDeDA2qG"); - Play("3eC!!EsACACeD2G3qA!AFeE2G!3etFCC"); - Play("eC!!EsACACeD2G3qA!AFeE2G!3etFCC"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Accts/TS/TAD/Registry.CPP b/SparrowOS/Accts/TS/TAD/Registry.CPP deleted file mode 100644 index 9db1424..0000000 --- a/SparrowOS/Accts/TS/TAD/Registry.CPP +++ /dev/null @@ -1,8 +0,0 @@ -$TR,"Adam"$ -$ID,2$$TR,"SparrowOS"$ -$ID,2$$TR,"SysMsgFlags"$ -$ID,2$sys_msg_flags[0]=0x255; -$ID,-2$$TR,"SysRegVer"$ -$ID,2$registry_version=1.020; -$ID,-2$$ID,-2$$ID,-2$$TR,"SparrowOS"$ -$ID,2$$ID,-2$ \ No newline at end of file diff --git a/SparrowOS/Accts/TS/TAD/Test.CPP b/SparrowOS/Accts/TS/TAD/Test.CPP deleted file mode 100644 index d2c27b7..0000000 --- a/SparrowOS/Accts/TS/TAD/Test.CPP +++ /dev/null @@ -1,53 +0,0 @@ -#define STEPS 360 - -U0 DrawIt(CTask *task,CDC *dc) -{ - F64 x1,x2,y1,y2,radius,peddles,é,t=tMBeat, - cx=Fs->win_pixel_width>>1,cy=Fs->win_pixel_height>>1; - Bool first=TRUE; - - radius=100*Sin(2*ã*t)+150; - peddles=ToI64(t/8%4)+4; - - dc->color=BLACK; - for (é=0;é<2*ã;é+=2*ã/STEPS) { - P2R(&x2,&y2,radius*Sin(peddles*é),é+t); - if (!first) { - GrLine(dc,x1+cx,cy-y1,x2+cx,cy-y2); - } else - first=FALSE; - x1=x2; y1=y2; - } - - dc->color=(t)%16; - for (é=(2*ã/peddles)/8;é<2*ã;é+=2*ã/peddles/2) { - P2R(&x1,&y1,radius/2*Sin(peddles*é),é+t); - GrFloodFill(dc,x1+cx,cy-y1); - } -} - -U0 SongTask(I64) -{ //Song by Terry A. Davis - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - while (TRUE) { - Play("W13eGGsGGeGGGe.GeCDsEDeCBAe.AeG"); - Play("GsGGeGGGe.GeFEsDEeDCBe.AeFD"); - Play("EDFDEDECDCECDCsGGeG"); - Play("GG2hG3sGGeGGG2hG"); - } -} - -U0 Rose() -{ - SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ - Fs->song_task=Spawn(&SongTask,NULL,"Song",Fs); - WordStat; - WinMax; - DocClear; - Fs->draw_it=&DrawIt; - PressAKey; - SettingsPop; -} - -Rose; \ No newline at end of file diff --git a/SparrowOS/Accts/TS/TSIDComputer.CPP b/SparrowOS/Accts/TS/TSIDComputer.CPP deleted file mode 100644 index 3a84230..0000000 --- a/SparrowOS/Accts/TS/TSIDComputer.CPP +++ /dev/null @@ -1,7 +0,0 @@ -U0 TSIDComputer() -{ - CMemE820 *m20=SYS_MEM_E820; - if (m20[11].base==0x100000000 && - m20[11].base(I64)+m20[11].len-1==0x33FFFFFFF) - ts_cid=CID_TAD8; -} TSIDComputer; diff --git a/SparrowOS/Accts/TS/TSIDDft.CPP b/SparrowOS/Accts/TS/TSIDDft.CPP deleted file mode 100644 index 3a84230..0000000 --- a/SparrowOS/Accts/TS/TSIDDft.CPP +++ /dev/null @@ -1,7 +0,0 @@ -U0 TSIDComputer() -{ - CMemE820 *m20=SYS_MEM_E820; - if (m20[11].base==0x100000000 && - m20[11].base(I64)+m20[11].len-1==0x33FFFFFFF) - ts_cid=CID_TAD8; -} TSIDComputer; diff --git a/SparrowOS/Accts/TS/Wb2/Hymns.TXT b/SparrowOS/Accts/TS/Wb2/Hymns.TXT deleted file mode 100644 index 1a6060a..0000000 --- a/SparrowOS/Accts/TS/Wb2/Hymns.TXT +++ /dev/null @@ -1,81 +0,0 @@ - -$FG,4$$TX+CX+HTML,"Download Hymn Player/Maker for Windows (6.99MB)","http://www.sparrowos.com/files/TSHymns.ZIP"$$FG$ - - -$HC,""$ -$TX+CX,"Hymns #6"$ -$LK+CX,"1) Risen ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/risen.CPP.Z"$ -$LK+CX,"2) Struggles","FI:::/SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP.Z"$ -$LK+CX,"3) Valued ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/valued.CPP.Z"$ -$LK+CX,"4) Born ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/born.CPP.Z"$ -$LK+CX,"5) Doing ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/doing.CPP.Z"$ -$LK+CX,"6) Dialogue ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP.Z"$ - - -$HC,""$ -$TX+CX,"Hymns #7"$ -$FG,4$$TX+CX,"1) Access (Deleted)"$$FG$ -$LK+CX,"2) Silver ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/silver.CPP.Z"$ -$LK+CX,"3) Night ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/night.CPP.Z"$ -$LK+CX,"4) Abyss ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP.Z"$ -$LK+CX,"5) Elijah ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP.Z"$ -$LK+CX,"6) Environeth ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/environeth.CPP.Z"$ - - -$HC,""$$HC,""$ -$TX+CX,"Hymns #8"$ -$FG,4$$TX+CX,"1) Pardon (Deleted) "$$FG$ -$FG,4$$TX+CX,"2) Brittle (Deleted)"$$FG$ -$LK+CX,"3) Service ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/service.CPP.Z"$ -$LK+CX,"4) Reposes ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/reposes.CPP.Z"$ -$LK+CX,"5) Limit ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/limit.CPP.Z"$ - - -$HC,""$ -$TX+CX,"Hymns #9"$ -$LK+CX,"1) Mightest ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP.Z"$ -$LK+CX,"2) Fishermen ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/fishermen.CPP.Z"$ -$LK+CX,"3) Expedition","FI:::/SparrowOS/Apps/MusicOrgan/Examples/expedition.CPP.Z"$ -$LK+CX,"4) Awake ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/awake.CPP.Z"$ -$LK+CX,"5) Exiled ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP.Z"$ -$LK+CX,"6) Gutenberg ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/gutenberg.CPP.Z"$ - - -$HC,""$ -$TX+CX,"Hymns #10"$ -$LK+CX," 1) Abiding ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP.Z"$ -$LK+CX," 2) Fog ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/fog.CPP.Z"$ -$LK+CX," 3) Reasoning ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/reasoning.CPP.Z"$ -$LK+CX," 4) Childish ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/childish.CPP.Z"$ -$LK+CX," 5) Furnishing","FI:::/SparrowOS/Apps/MusicOrgan/Examples/furnishing.CPP.Z"$ -$LK+CX," 6) Prosper ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP.Z"$ -$LK+CX," 7) Exalt ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP.Z"$ -$LK+CX," 8) Hope ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/hope.CPP.Z"$ -$LK+CX," 9) Free ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/free.CPP.Z"$ -$LK+CX,"10) Freaks ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP.Z"$ -$LK+CX,"11) Proponent ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/proponent.CPP.Z"$ - - -$HC,""$ -$TX+CX,"Hymns #11"$ -$LK+CX,"1) Bedewed ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP.Z"$ -$LK+CX,"2) Purpose ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/purpose.CPP.Z"$ -$LK+CX,"3) Sustain ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP.Z"$ -$LK+CX,"4) Personal","FI:::/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP.Z"$ -$LK+CX,"5) Twins ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/twins.CPP.Z"$ -$LK+CX,"6) Keeping ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP.Z"$ -$LK+CX,"7) Dream ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP.Z"$ - - -$HC,""$ -$TX+CX,"Hymns #12"$ -$LK+CX,"1) Small ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/small.CPP.Z"$ -$LK+CX,"2) Satisfaction ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/satisfaction.CPP.Z"$ -$LK+CX,"3) Image ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/image.CPP.Z"$ -$FG,4$$TX+CX,"4) Duab(Deleted)"$$FG$ -$LK+CX,"5) Disputing ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/disputing.CPP.Z"$ -$LK+CX,"6) Appreciate ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/appreciate.CPP.Z"$ -$LK+CX,"7) Completed ","FI:::/SparrowOS/Apps/MusicOrgan/Examples/completed.CPP.Z"$ - -$FG,8$ -* "Windows" is a trademark of MicroSoft Corp. diff --git a/SparrowOS/Accts/TS/Wb2/LineCnt.TXT b/SparrowOS/Accts/TS/Wb2/LineCnt.TXT deleted file mode 100644 index b7ca792..0000000 --- a/SparrowOS/Accts/TS/Wb2/LineCnt.TXT +++ /dev/null @@ -1,721 +0,0 @@ -$WW+H,1$ 137,965 $TR,"/SparrowOS/*"$ -$ID,2$ 6,832 $TR,"Accts"$ -$ID,2$ 306 $TR,"Install"$ -$ID,2$ 41 $LK,"Adam3fSys.CPP.Z","FI:D:/SparrowOS/Accts/Install/Adam3fSys.CPP.Z"$ - 265 $LK,"DoItOnce.CPP.Z","FI:D:/SparrowOS/Accts/Install/DoItOnce.CPP.Z"$ -$ID,-2$ 61 $TR,"SafeMode"$ -$ID,2$ 10 $LK,"Adam3.CPP.Z","FI:D:/SparrowOS/Accts/SafeMode/Adam3.CPP.Z"$ - 2 $LK,"Adam3cSnd.CPP.Z","FI:D:/SparrowOS/Accts/SafeMode/Adam3cSnd.CPP.Z"$ - 39 $LK,"Adam3fSys.CPP.Z","FI:D:/SparrowOS/Accts/SafeMode/Adam3fSys.CPP.Z"$ - 10 $LK,"DoItOnce.CPP.Z","FI:D:/SparrowOS/Accts/SafeMode/DoItOnce.CPP.Z"$ -$ID,-2$ 6,128 $TR,"TS"$ -$ID,2$ 4,804 $TR,"TAD"$ -$ID,2$ 822 $TR,"Archive"$ -$ID,2$ 489 $LK,"FileSysISO3.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/Archive/FileSysISO3.CPP.Z"$ - 218 $LK,"USB.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/Archive/USB.CPP.Z"$ - 115 $LK,"USB1a.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/Archive/USB1a.CPP.Z"$ -$ID,-2$ 3,903 $TR,"MusicOrgan"$ -$ID,2$ 76 $LK,"abiding.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP.Z"$ - 45 $LK,"abyss.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/abyss.CPP.Z"$ - 23 $LK,"almighty.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP.Z"$ - 23 $LK,"appreciate.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP.Z"$ - 78 $LK,"awake.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP.Z"$ - 63 $LK,"battlehymnsolo.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP.Z"$ - 50 $LK,"bedewed.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP.Z"$ - 52 $LK,"blinded.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP.Z"$ - 55 $LK,"born.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP.Z"$ - 23 $LK,"childish.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP.Z"$ - 25 $LK,"compassions.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP.Z"$ - 41 $LK,"completed.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/completed.CPP.Z"$ - 31 $LK,"cosam.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/cosam.CPP.Z"$ - 33 $LK,"depending.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP.Z"$ - 25 $LK,"despairing.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/despairing.CPP.Z"$ - 21 $LK,"determination.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP.Z"$ - 69 $LK,"dialogue.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP.Z"$ - 27 $LK,"disputing.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/disputing.CPP.Z"$ - 63 $LK,"doing.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/doing.CPP.Z"$ - 17 $LK,"downfall.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP.Z"$ - 25 $LK,"dream.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/dream.CPP.Z"$ - 21 $LK,"efforts.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP.Z"$ - 100 $LK,"elijah.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/elijah.CPP.Z"$ - 23 $LK,"environeth.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/environeth.CPP.Z"$ - 43 $LK,"epicurus.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP.Z"$ - 40 $LK,"exalt.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP.Z"$ - 63 $LK,"exiled.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP.Z"$ - 45 $LK,"expedition.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/expedition.CPP.Z"$ - 38 $LK,"fairness.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/fairness.CPP.Z"$ - 21 $LK,"feigned.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/feigned.CPP.Z"$ - 68 $LK,"finger.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/finger.CPP.Z"$ - 54 $LK,"first.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP.Z"$ - 45 $LK,"fishermen.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP.Z"$ - 21 $LK,"fixing.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP.Z"$ - 21 $LK,"flung.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP.Z"$ - 59 $LK,"fog.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/fog.CPP.Z"$ - 37 $LK,"forasmuch.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP.Z"$ - 25 $LK,"freaks.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP.Z"$ - 35 $LK,"free.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/free.CPP.Z"$ - 75 $LK,"furnishing.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP.Z"$ - 52 $LK,"good.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/good.CPP.Z"$ - 63 $LK,"gutenberg.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP.Z"$ - 57 $LK,"happy.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/happy.CPP.Z"$ - 21 $LK,"honestly.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/honestly.CPP.Z"$ - 55 $LK,"hope.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/hope.CPP.Z"$ - 36 $LK,"image.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP.Z"$ - 21 $LK,"inwardly.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/inwardly.CPP.Z"$ - 23 $LK,"keeping.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/keeping.CPP.Z"$ - 34 $LK,"kept.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/kept.CPP.Z"$ - 56 $LK,"limit.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP.Z"$ - 60 $LK,"mary.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP.Z"$ - 53 $LK,"mightest.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP.Z"$ - 81 $LK,"mildly.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/mildly.CPP.Z"$ - 24 $LK,"nay.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP.Z"$ - 80 $LK,"night.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/night.CPP.Z"$ - 21 $LK,"o.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/o.CPP.Z"$ - 37 $LK,"partake.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP.Z"$ - 21 $LK,"permitted.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/permitted.CPP.Z"$ - 23 $LK,"personal.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP.Z"$ - 21 $LK,"population.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP.Z"$ - 17 $LK,"proponent.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP.Z"$ - 55 $LK,"prosper.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/prosper.CPP.Z"$ - 22 $LK,"psalm.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/psalm.CPP.Z"$ - 37 $LK,"purpose.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/purpose.CPP.Z"$ - 23 $LK,"reasoning.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP.Z"$ - 40 $LK,"reliance.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP.Z"$ - 25 $LK,"reposes.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP.Z"$ - 20 $LK,"restless.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/restless.CPP.Z"$ - 22 $LK,"rifled.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP.Z"$ - 90 $LK,"risen.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP.Z"$ - 104 $LK,"satisfaction.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP.Z"$ - 36 $LK,"scriptures.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP.Z"$ - 36 $LK,"service.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP.Z"$ - 56 $LK,"shield.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP.Z"$ - 21 $LK,"signifies.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/signifies.CPP.Z"$ - 26 $LK,"silver.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP.Z"$ - 93 $LK,"small.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP.Z"$ - 44 $LK,"struggles.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/struggles.CPP.Z"$ - 46 $LK,"sustain.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/sustain.CPP.Z"$ - 36 $LK,"teachings.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/teachings.CPP.Z"$ - 77 $LK,"thereupon.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP.Z"$ - 25 $LK,"thither.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP.Z"$ - 26 $LK,"twins.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP.Z"$ - 41 $LK,"valued.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP.Z"$ - 70 $LK,"vengeance.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP.Z"$ - 50 $LK,"verses.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/verses.CPP.Z"$ - 23 $LK,"villa.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP.Z"$ - 51 $LK,"wisdom.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP.Z"$ - 36 $LK,"witherto.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/witherto.CPP.Z"$ - 21 $LK,"worship.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP.Z"$ - 27 $LK,"you.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP.Z"$ - 69 $LK,"zip.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP.Z"$ -$ID,-2$ 21 $LK,"Adam3aLocalize.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/Adam3aLocalize.CPP.Z"$ - 4 $LK,"Registry.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/Registry.CPP.Z"$ - 54 $LK,"Test.CPP.Z","FI:D:/SparrowOS/Accts/TS/TAD/Test.CPP.Z"$ -$ID,-2$ 0 $TR,"Wb2"$ -$ID,2$$ID,-2$ 10 $LK,"Adam3bPkgs.CPP.Z","FI:D:/SparrowOS/Accts/TS/Adam3bPkgs.CPP.Z"$ - 267 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/SparrowOS/Accts/TS/Adam3dKeyPlugIns.CPP.Z"$ - 10 $LK,"Adam3eWrappers.CPP.Z","FI:D:/SparrowOS/Accts/TS/Adam3eWrappers.CPP.Z"$ - 50 $LK,"Adam3fSys.CPP.Z","FI:D:/SparrowOS/Accts/TS/Adam3fSys.CPP.Z"$ - 13 $LK,"DoItOnce.CPP.Z","FI:D:/SparrowOS/Accts/TS/DoItOnce.CPP.Z"$ - 414 $LK,"TSAdam.CPP.Z","FI:D:/SparrowOS/Accts/TS/TSAdam.CPP.Z"$ - 544 $LK,"TSDistribute.CPP.Z","FI:D:/SparrowOS/Accts/TS/TSDistribute.CPP.Z"$ - 8 $LK,"TSIDComputer.CPP.Z","FI:D:/SparrowOS/Accts/TS/TSIDComputer.CPP.Z"$ - 8 $LK,"TSIDDft.CPP.Z","FI:D:/SparrowOS/Accts/TS/TSIDDft.CPP.Z"$ -$ID,-2$ 0 $TR,"User"$ -$ID,2$$ID,-2$ 10 $LK,"Adam3.CPP.Z","FI:D:/SparrowOS/Accts/Adam3.CPP.Z"$ - 22 $LK,"Adam3aLocalize.CPP.Z","FI:D:/SparrowOS/Accts/Adam3aLocalize.CPP.Z"$ - 25 $LK,"Adam3bPkgs.CPP.Z","FI:D:/SparrowOS/Accts/Adam3bPkgs.CPP.Z"$ - 12 $LK,"Adam3cSnd.CPP.Z","FI:D:/SparrowOS/Accts/Adam3cSnd.CPP.Z"$ - 180 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/SparrowOS/Accts/Adam3dKeyPlugIns.CPP.Z"$ - 28 $LK,"Adam3eWrappers.CPP.Z","FI:D:/SparrowOS/Accts/Adam3eWrappers.CPP.Z"$ - 43 $LK,"Adam3fSys.CPP.Z","FI:D:/SparrowOS/Accts/Adam3fSys.CPP.Z"$ - 17 $LK,"DoItOnce.CPP.Z","FI:D:/SparrowOS/Accts/DoItOnce.CPP.Z"$ -$ID,-2$ 39,412 $TR,"Adam"$ -$ID,2$ 859 $TR,"Boot"$ -$ID,2$ 158 $LK,"BootCD.CPP.Z","FI:D:/SparrowOS/Adam/Boot/BootCD.CPP.Z"$ - 93 $LK,"BootHD.CPP.Z","FI:D:/SparrowOS/Adam/Boot/BootHD.CPP.Z"$ - 106 $LK,"BootMHD.CPP.Z","FI:D:/SparrowOS/Adam/Boot/BootMHD.CPP.Z"$ - 120 $LK,"BootMHD2.CPP.Z","FI:D:/SparrowOS/Adam/Boot/BootMHD2.CPP.Z"$ - 382 $LK,"InsBoot.CPP.Z","FI:D:/SparrowOS/Adam/Boot/InsBoot.CPP.Z"$ -$ID,-2$ 716 $TR,"Ctrls"$ -$ID,2$ 9 $LK,"Ctrls.CPP.Z","FI:D:/SparrowOS/Adam/Ctrls/Ctrls.CPP.Z"$ - 394 $LK,"Ctrls2a.CPP.Z","FI:D:/SparrowOS/Adam/Ctrls/Ctrls2a.CPP.Z"$ - 95 $LK,"CtrlsButton.CPP.Z","FI:D:/SparrowOS/Adam/Ctrls/CtrlsButton.CPP.Z"$ - 218 $LK,"CtrlsSlider.CPP.Z","FI:D:/SparrowOS/Adam/Ctrls/CtrlsSlider.CPP.Z"$ -$ID,-2$ 11,701 $TR,"Doc"$ -$ID,2$ 100 $LK,"Doc.CPP.Z","FI:D:/SparrowOS/Adam/Doc/Doc.CPP.Z"$ - 193 $LK,"DocBible.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocBible.CPP.Z"$ - 434 $LK,"DocCodeTools.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocCodeTools.CPP.Z"$ - 1,186 $LK,"DocCtrlL.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocCtrlL.CPP.Z"$ - 2,487 $LK,"DocEd.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocEd.CPP.Z"$ - 456 $LK,"DocFile.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocFile.CPP.Z"$ - 386 $LK,"DocHighlight.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocHighlight.CPP.Z"$ - 521 $LK,"DocIDE.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocIDE.CPP.Z"$ - 220 $LK,"DocMacro.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocMacro.CPP.Z"$ - 645 $LK,"DocMain.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocMain.CPP.Z"$ - 898 $LK,"DocNew.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocNew.CPP.Z"$ - 1,277 $LK,"DocPlain.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocPlain.CPP.Z"$ - 881 $LK,"DocPopUp.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocPopUp.CPP.Z"$ - 1,841 $LK,"DocRecalc.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocRecalc.CPP.Z"$ - 176 $LK,"DocTree.CPP.Z","FI:D:/SparrowOS/Adam/Doc/DocTree.CPP.Z"$ -$ID,-2$ 2,581 $TR,"Dsk"$ -$ID,2$ 233 $LK,"ChkDsk.CPP.Z","FI:D:/SparrowOS/Adam/Dsk/ChkDsk.CPP.Z"$ - 6 $LK,"Dsk2.CPP.Z","FI:D:/SparrowOS/Adam/Dsk/Dsk2.CPP.Z"$ - 427 $LK,"Dsk2a.CPP.Z","FI:D:/SparrowOS/Adam/Dsk/Dsk2a.CPP.Z"$ - 550 $LK,"Dsk2b.CPP.Z","FI:D:/SparrowOS/Adam/Dsk/Dsk2b.CPP.Z"$ - 599 $LK,"DskCDDVD.CPP.Z","FI:D:/SparrowOS/Adam/Dsk/DskCDDVD.CPP.Z"$ - 766 $LK,"FileMgr.CPP.Z","FI:D:/SparrowOS/Adam/Dsk/FileMgr.CPP.Z"$ -$ID,-2$ 12,266 $TR,"Gr"$ -$ID,2$ 604 $LK,"CSpriteBitMap.CPP.Z","FI:D:/SparrowOS/Adam/Gr/CSpriteBitMap.CPP.Z"$ - 1,222 $LK,"CSpriteEd.CPP.Z","FI:D:/SparrowOS/Adam/Gr/CSpriteEd.CPP.Z"$ - 1,384 $LK,"CSpriteMesh.CPP.Z","FI:D:/SparrowOS/Adam/Gr/CSpriteMesh.CPP.Z"$ - 236 $LK,"CSpriteNew.CPP.Z","FI:D:/SparrowOS/Adam/Gr/CSpriteNew.CPP.Z"$ - 1,282 $LK,"CSpriteVect.CPP.Z","FI:D:/SparrowOS/Adam/Gr/CSpriteVect.CPP.Z"$ - 128 $LK,"Gr.CPP.Z","FI:D:/SparrowOS/Adam/Gr/Gr.CPP.Z"$ - 766 $LK,"GrAsm.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrAsm.CPP.Z"$ - 1,682 $LK,"GrBitMap.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrBitMap.CPP.Z"$ - 11 $LK,"GrCfg.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrCfg.CPP.Z"$ - 107 $LK,"GrChar.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrChar.CPP.Z"$ - 181 $LK,"GrComposites.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrComposites.CPP.Z"$ - 305 $LK,"GrDC.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrDC.CPP.Z"$ - 1,498 $LK,"GrPrimatives.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrPrimatives.CPP.Z"$ - 786 $LK,"GrScreen.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrScreen.CPP.Z"$ - 524 $LK,"GrSpritePlot.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z"$ - 487 $LK,"GrVectMap.CPP.Z","FI:D:/SparrowOS/Adam/Gr/GrVectMap.CPP.Z"$ - 1,063 $LK,"MathGr.CPP.Z","FI:D:/SparrowOS/Adam/Gr/MathGr.CPP.Z"$ -$ID,-2$ 2,202 $TR,"Snd"$ -$ID,2$ 611 $LK,"HDAudio.CPP.Z","FI:D:/SparrowOS/Adam/Snd/HDAudio.CPP.Z"$ - 639 $LK,"HDCfg.CPP.Z","FI:D:/SparrowOS/Adam/Snd/HDCfg.CPP.Z"$ - 240 $LK,"MathAudio.CPP.Z","FI:D:/SparrowOS/Adam/Snd/MathAudio.CPP.Z"$ - 261 $LK,"Music.CPP.Z","FI:D:/SparrowOS/Adam/Snd/Music.CPP.Z"$ - 65 $LK,"Snd.CPP.Z","FI:D:/SparrowOS/Adam/Snd/Snd.CPP.Z"$ - 69 $LK,"SndEffects.CPP.Z","FI:D:/SparrowOS/Adam/Snd/SndEffects.CPP.Z"$ - 317 $LK,"SndFile.CPP.Z","FI:D:/SparrowOS/Adam/Snd/SndFile.CPP.Z"$ -$ID,-2$ 1,344 $TR,"WordStat"$ -$ID,2$ 307 $LK,"WSDict.CPP.Z","FI:D:/SparrowOS/Adam/WordStat/WSDict.CPP.Z"$ - 220 $LK,"WSDictGen.CPP.Z","FI:D:/SparrowOS/Adam/WordStat/WSDictGen.CPP.Z"$ - 723 $LK,"WSMain.CPP.Z","FI:D:/SparrowOS/Adam/WordStat/WSMain.CPP.Z"$ - 94 $LK,"WordStat.CPP.Z","FI:D:/SparrowOS/Adam/WordStat/WordStat.CPP.Z"$ -$ID,-2$ 73 $LK,"Adam2.CPP.Z","FI:D:/SparrowOS/Adam/Adam2.CPP.Z"$ - 139 $LK,"AutoFile2a.CPP.Z","FI:D:/SparrowOS/Adam/AutoFile2a.CPP.Z"$ - 86 $LK,"BinRep.CPP.Z","FI:D:/SparrowOS/Adam/BinRep.CPP.Z"$ - 399 $LK,"Dbg2a.CPP.Z","FI:D:/SparrowOS/Adam/Dbg2a.CPP.Z"$ - 326 $LK,"DevInfo.CPP.Z","FI:D:/SparrowOS/Adam/DevInfo.CPP.Z"$ - 270 $LK,"Diff.CPP.Z","FI:D:/SparrowOS/Adam/Diff.CPP.Z"$ - 56 $LK,"DocDefines.CPP.Z","FI:D:/SparrowOS/Adam/DocDefines.CPP.Z"$ - 214 $LK,"FileBMP.CPP.Z","FI:D:/SparrowOS/Adam/FileBMP.CPP.Z"$ - 259 $LK,"Grep.CPP.Z","FI:D:/SparrowOS/Adam/Grep.CPP.Z"$ - 545 $LK,"Hash2a.CPP.Z","FI:D:/SparrowOS/Adam/Hash2a.CPP.Z"$ - 160 $LK,"HeapLog.CPP.Z","FI:D:/SparrowOS/Adam/HeapLog.CPP.Z"$ - 114 $LK,"LineCnt.CPP.Z","FI:D:/SparrowOS/Adam/LineCnt.CPP.Z"$ - 79 $LK,"LinkChk.CPP.Z","FI:D:/SparrowOS/Adam/LinkChk.CPP.Z"$ - 169 $LK,"LogIn.CPP.Z","FI:D:/SparrowOS/Adam/LogIn.CPP.Z"$ - 139 $LK,"Math2a.CPP.Z","FI:D:/SparrowOS/Adam/Math2a.CPP.Z"$ - 638 $LK,"MathODE.CPP.Z","FI:D:/SparrowOS/Adam/MathODE.CPP.Z"$ - 239 $LK,"MemRep.CPP.Z","FI:D:/SparrowOS/Adam/MemRep.CPP.Z"$ - 242 $LK,"Menu.CPP.Z","FI:D:/SparrowOS/Adam/Menu.CPP.Z"$ - 89 $LK,"Merge.CPP.Z","FI:D:/SparrowOS/Adam/Merge.CPP.Z"$ - 201 $LK,"Profiler.CPP.Z","FI:D:/SparrowOS/Adam/Profiler.CPP.Z"$ - 70 $LK,"S2T.CPP.Z","FI:D:/SparrowOS/Adam/S2T.CPP.Z"$ - 30 $LK,"Start.CPP.Z","FI:D:/SparrowOS/Adam/Start.CPP.Z"$ - 122 $LK,"TaskSettings.CPP.Z","FI:D:/SparrowOS/Adam/TaskSettings.CPP.Z"$ - 349 $LK,"ToHtml.CPP.Z","FI:D:/SparrowOS/Adam/ToHtml.CPP.Z"$ - 147 $LK,"ToTXT.CPP.Z","FI:D:/SparrowOS/Adam/ToTXT.CPP.Z"$ - 243 $LK,"Training.CPP.Z","FI:D:/SparrowOS/Adam/Training.CPP.Z"$ - 444 $LK,"Utils2a.CPP.Z","FI:D:/SparrowOS/Adam/Utils2a.CPP.Z"$ - 241 $LK,"WallPaper.CPP.Z","FI:D:/SparrowOS/Adam/WallPaper.CPP.Z"$ - 1,554 $LK,"Window.CPP.Z","FI:D:/SparrowOS/Adam/Window.CPP.Z"$ - 106 $LK,"AdamExt.HPP.Z","FI:D:/SparrowOS/Adam/AdamExt.HPP.Z"$ -$ID,-2$ 14,970 $TR,"Apps"$ -$ID,2$ 1,071 $TR,"AfterEgypt"$ -$ID,2$ 0 $TR,"Comics"$ -$ID,2$$ID,-2$ 284 $LK,"AfterEgypt.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/AfterEgypt.CPP.Z"$ - 136 $LK,"Battle.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Battle.CPP.Z"$ - 28 $LK,"Comics.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Comics.CPP.Z"$ - 271 $LK,"Horeb.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Horeb.CPP.Z"$ - 17 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Load.CPP.Z"$ - 78 $LK,"Map.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Map.CPP.Z"$ - 95 $LK,"Quail.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Quail.CPP.Z"$ - 4 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/Run.CPP.Z"$ - 158 $LK,"WaterRock.CPP.Z","FI:D:/SparrowOS/Apps/AfterEgypt/WaterRock.CPP.Z"$ -$ID,-2$ 462 $TR,"GrModels"$ -$ID,2$ 133 $LK,"BallGen.CPP.Z","FI:D:/SparrowOS/Apps/GrModels/BallGen.CPP.Z"$ - 4 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/GrModels/Load.CPP.Z"$ - 296 $LK,"ManGen.CPP.Z","FI:D:/SparrowOS/Apps/GrModels/ManGen.CPP.Z"$ - 26 $LK,"Models.CPP.Z","FI:D:/SparrowOS/Apps/GrModels/Models.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/GrModels/Run.CPP.Z"$ -$ID,-2$ 75 $TR,"HolySpirit"$ -$ID,2$ 75 $LK,"HolySpirit.CPP.Z","FI:D:/SparrowOS/Apps/HolySpirit/HolySpirit.CPP.Z"$ -$ID,-2$ 748 $TR,"KeepAway"$ -$ID,2$ 743 $LK,"KeepAway.CPP.Z","FI:D:/SparrowOS/Apps/KeepAway/KeepAway.CPP.Z"$ - 2 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/KeepAway/Load.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/KeepAway/Run.CPP.Z"$ -$ID,-2$ 617 $TR,"Logic"$ -$ID,2$ 2 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/Logic/Load.CPP.Z"$ - 612 $LK,"Logic.CPP.Z","FI:D:/SparrowOS/Apps/Logic/Logic.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/Logic/Run.CPP.Z"$ -$ID,-2$ 6,291 $TR,"MusicOrgan"$ -$ID,2$ 3,903 $TR,"Examples"$ -$ID,2$ 76 $LK,"abiding.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP.Z"$ - 45 $LK,"abyss.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP.Z"$ - 23 $LK,"almighty.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/almighty.CPP.Z"$ - 23 $LK,"appreciate.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/appreciate.CPP.Z"$ - 78 $LK,"awake.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/awake.CPP.Z"$ - 63 $LK,"battlehymnsolo.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP.Z"$ - 50 $LK,"bedewed.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP.Z"$ - 52 $LK,"blinded.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/blinded.CPP.Z"$ - 55 $LK,"born.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/born.CPP.Z"$ - 23 $LK,"childish.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/childish.CPP.Z"$ - 25 $LK,"compassions.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/compassions.CPP.Z"$ - 41 $LK,"completed.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/completed.CPP.Z"$ - 31 $LK,"cosam.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/cosam.CPP.Z"$ - 33 $LK,"depending.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/depending.CPP.Z"$ - 25 $LK,"despairing.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP.Z"$ - 21 $LK,"determination.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/determination.CPP.Z"$ - 69 $LK,"dialogue.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP.Z"$ - 27 $LK,"disputing.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/disputing.CPP.Z"$ - 63 $LK,"doing.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/doing.CPP.Z"$ - 17 $LK,"downfall.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/downfall.CPP.Z"$ - 25 $LK,"dream.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP.Z"$ - 21 $LK,"efforts.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/efforts.CPP.Z"$ - 100 $LK,"elijah.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP.Z"$ - 23 $LK,"environeth.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/environeth.CPP.Z"$ - 43 $LK,"epicurus.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP.Z"$ - 40 $LK,"exalt.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/exalt.CPP.Z"$ - 63 $LK,"exiled.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/exiled.CPP.Z"$ - 45 $LK,"expedition.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/expedition.CPP.Z"$ - 38 $LK,"fairness.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/fairness.CPP.Z"$ - 21 $LK,"feigned.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP.Z"$ - 68 $LK,"finger.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/finger.CPP.Z"$ - 54 $LK,"first.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/first.CPP.Z"$ - 45 $LK,"fishermen.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/fishermen.CPP.Z"$ - 21 $LK,"fixing.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/fixing.CPP.Z"$ - 21 $LK,"flung.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/flung.CPP.Z"$ - 59 $LK,"fog.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/fog.CPP.Z"$ - 37 $LK,"forasmuch.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/forasmuch.CPP.Z"$ - 25 $LK,"freaks.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/freaks.CPP.Z"$ - 35 $LK,"free.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/free.CPP.Z"$ - 75 $LK,"furnishing.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/furnishing.CPP.Z"$ - 52 $LK,"good.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/good.CPP.Z"$ - 63 $LK,"gutenberg.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/gutenberg.CPP.Z"$ - 57 $LK,"happy.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/happy.CPP.Z"$ - 21 $LK,"honestly.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/honestly.CPP.Z"$ - 55 $LK,"hope.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/hope.CPP.Z"$ - 36 $LK,"image.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/image.CPP.Z"$ - 21 $LK,"inwardly.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP.Z"$ - 23 $LK,"keeping.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP.Z"$ - 34 $LK,"kept.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/kept.CPP.Z"$ - 56 $LK,"limit.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/limit.CPP.Z"$ - 60 $LK,"mary.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/mary.CPP.Z"$ - 53 $LK,"mightest.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP.Z"$ - 81 $LK,"mildly.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP.Z"$ - 24 $LK,"nay.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/nay.CPP.Z"$ - 80 $LK,"night.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/night.CPP.Z"$ - 21 $LK,"o.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/o.CPP.Z"$ - 37 $LK,"partake.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/partake.CPP.Z"$ - 21 $LK,"permitted.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/permitted.CPP.Z"$ - 23 $LK,"personal.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/personal.CPP.Z"$ - 21 $LK,"population.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/population.CPP.Z"$ - 17 $LK,"proponent.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/proponent.CPP.Z"$ - 55 $LK,"prosper.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP.Z"$ - 22 $LK,"psalm.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP.Z"$ - 37 $LK,"purpose.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/purpose.CPP.Z"$ - 23 $LK,"reasoning.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/reasoning.CPP.Z"$ - 40 $LK,"reliance.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/reliance.CPP.Z"$ - 25 $LK,"reposes.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/reposes.CPP.Z"$ - 20 $LK,"restless.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP.Z"$ - 22 $LK,"rifled.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/rifled.CPP.Z"$ - 90 $LK,"risen.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/risen.CPP.Z"$ - 104 $LK,"satisfaction.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/satisfaction.CPP.Z"$ - 36 $LK,"scriptures.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/scriptures.CPP.Z"$ - 36 $LK,"service.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/service.CPP.Z"$ - 56 $LK,"shield.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/shield.CPP.Z"$ - 21 $LK,"signifies.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/signifies.CPP.Z"$ - 26 $LK,"silver.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/silver.CPP.Z"$ - 93 $LK,"small.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/small.CPP.Z"$ - 44 $LK,"struggles.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP.Z"$ - 46 $LK,"sustain.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP.Z"$ - 36 $LK,"teachings.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/teachings.CPP.Z"$ - 77 $LK,"thereupon.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/thereupon.CPP.Z"$ - 25 $LK,"thither.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/thither.CPP.Z"$ - 26 $LK,"twins.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/twins.CPP.Z"$ - 41 $LK,"valued.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/valued.CPP.Z"$ - 70 $LK,"vengeance.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/vengeance.CPP.Z"$ - 50 $LK,"verses.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/verses.CPP.Z"$ - 23 $LK,"villa.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/villa.CPP.Z"$ - 51 $LK,"wisdom.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP.Z"$ - 36 $LK,"witherto.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/witherto.CPP.Z"$ - 21 $LK,"worship.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/worship.CPP.Z"$ - 27 $LK,"you.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/you.CPP.Z"$ - 69 $LK,"zip.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Examples/zip.CPP.Z"$ -$ID,-2$ 2 $LK,"Install.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Install.CPP.Z"$ - 149 $LK,"JukeBox.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/JukeBox.CPP.Z"$ - 8 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Load.CPP.Z"$ - 156 $LK,"MakeSong.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/MakeSong.CPP.Z"$ - 1,981 $LK,"Organ.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Organ.CPP.Z"$ - 88 $LK,"OrganCtrls.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP.Z"$ - 4 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/MusicOrgan/Run.CPP.Z"$ -$ID,-2$ 759 $TR,"Pilgrims"$ -$ID,2$ 8 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/Pilgrims/Load.CPP.Z"$ - 748 $LK,"Pilgrims.CPP.Z","FI:D:/SparrowOS/Apps/Pilgrims/Pilgrims.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/Pilgrims/Run.CPP.Z"$ -$ID,-2$ 844 $TR,"Span"$ -$ID,2$ 2 $LK,"Install.CPP.Z","FI:D:/SparrowOS/Apps/Span/Install.CPP.Z"$ - 11 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/Span/Load.CPP.Z"$ - 4 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/Span/Run.CPP.Z"$ - 91 $LK,"SpanBridge1.CPP.Z","FI:D:/SparrowOS/Apps/Span/SpanBridge1.CPP.Z"$ - 48 $LK,"SpanDerive.CPP.Z","FI:D:/SparrowOS/Apps/Span/SpanDerive.CPP.Z"$ - 505 $LK,"SpanMain.CPP.Z","FI:D:/SparrowOS/Apps/Span/SpanMain.CPP.Z"$ - 128 $LK,"SpanNew.CPP.Z","FI:D:/SparrowOS/Apps/Span/SpanNew.CPP.Z"$ - 55 $LK,"Span.HPP.Z","FI:D:/SparrowOS/Apps/Span/Span.HPP.Z"$ -$ID,-2$ 1,969 $TR,"Tanks"$ -$ID,2$ 234 $TR,"AIs"$ -$ID,2$ 157 $LK,"Human.CPP.Z","FI:D:/SparrowOS/Apps/Tanks/AIs/Human.CPP.Z"$ - 77 $LK,"SimpleAI.CPP.Z","FI:D:/SparrowOS/Apps/Tanks/AIs/SimpleAI.CPP.Z"$ -$ID,-2$ 3 $LK,"Install.CPP.Z","FI:D:/SparrowOS/Apps/Tanks/Install.CPP.Z"$ - 2 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/Tanks/Load.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/Tanks/Run.CPP.Z"$ - 1,727 $LK,"Tanks.CPP.Z","FI:D:/SparrowOS/Apps/Tanks/Tanks.CPP.Z"$ -$ID,-2$ 165 $TR,"TimeClock"$ -$ID,2$ 6 $LK,"Install.CPP.Z","FI:D:/SparrowOS/Apps/TimeClock/Install.CPP.Z"$ - 2 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/TimeClock/Load.CPP.Z"$ - 157 $LK,"TimeClk.CPP.Z","FI:D:/SparrowOS/Apps/TimeClock/TimeClk.CPP.Z"$ -$ID,-2$ 609 $TR,"Timeout"$ -$ID,2$ 6 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/Timeout/Load.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/Timeout/Run.CPP.Z"$ - 600 $LK,"Timeout.CPP.Z","FI:D:/SparrowOS/Apps/Timeout/Timeout.CPP.Z"$ -$ID,-2$ 67 $TR,"Vocabulary"$ -$ID,2$ 6 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/Vocabulary/Load.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/Vocabulary/Run.CPP.Z"$ - 58 $LK,"VocabQuiz.CPP.Z","FI:D:/SparrowOS/Apps/Vocabulary/VocabQuiz.CPP.Z"$ -$ID,-2$ 1,293 $TR,"X-Caliber"$ -$ID,2$ 9 $LK,"Load.CPP.Z","FI:D:/SparrowOS/Apps/X-Caliber/Load.CPP.Z"$ - 3 $LK,"Run.CPP.Z","FI:D:/SparrowOS/Apps/X-Caliber/Run.CPP.Z"$ - 1,140 $LK,"X-Caliber.CPP.Z","FI:D:/SparrowOS/Apps/X-Caliber/X-Caliber.CPP.Z"$ - 141 $LK,"XCCtrls.CPP.Z","FI:D:/SparrowOS/Apps/X-Caliber/XCCtrls.CPP.Z"$ -$ID,-2$$ID,-2$ 21,560 $TR,"Compiler"$ -$ID,2$ 1,488 $LK,"Assembler.CPP.Z","FI:D:/SparrowOS/Compiler/Assembler.CPP.Z"$ - 5,121 $LK,"BackEnd.CPP.Z","FI:D:/SparrowOS/Compiler/BackEnd.CPP.Z"$ - 694 $LK,"CmpAsm.CPP.Z","FI:D:/SparrowOS/Compiler/CmpAsm.CPP.Z"$ - 55 $LK,"CmpExts.CPP.Z","FI:D:/SparrowOS/Compiler/CmpExts.CPP.Z"$ - 21 $LK,"CmpGlbls.CPP.Z","FI:D:/SparrowOS/Compiler/CmpGlbls.CPP.Z"$ - 741 $LK,"CmpInit.CPP.Z","FI:D:/SparrowOS/Compiler/CmpInit.CPP.Z"$ - 689 $LK,"CmpMain.CPP.Z","FI:D:/SparrowOS/Compiler/CmpMain.CPP.Z"$ - 68 $LK,"CmpQueVect.CPP.Z","FI:D:/SparrowOS/Compiler/CmpQueVect.CPP.Z"$ - 510 $LK,"CodeGen.CPP.Z","FI:D:/SparrowOS/Compiler/CodeGen.CPP.Z"$ - 80 $LK,"Directives.CPP.Z","FI:D:/SparrowOS/Compiler/Directives.CPP.Z"$ - 1,298 $LK,"ExpParser.CPP.Z","FI:D:/SparrowOS/Compiler/ExpParser.CPP.Z"$ - 159 $LK,"Hash1b.CPP.Z","FI:D:/SparrowOS/Compiler/Hash1b.CPP.Z"$ - 1,700 $LK,"Lex.CPP.Z","FI:D:/SparrowOS/Compiler/Lex.CPP.Z"$ - 2,210 $LK,"OptPass012.CPP.Z","FI:D:/SparrowOS/Compiler/OptPass012.CPP.Z"$ - 651 $LK,"OptPass3.CPP.Z","FI:D:/SparrowOS/Compiler/OptPass3.CPP.Z"$ - 852 $LK,"OptPass4.CPP.Z","FI:D:/SparrowOS/Compiler/OptPass4.CPP.Z"$ - 172 $LK,"OptPass5.CPP.Z","FI:D:/SparrowOS/Compiler/OptPass5.CPP.Z"$ - 267 $LK,"OptPass6.CPP.Z","FI:D:/SparrowOS/Compiler/OptPass6.CPP.Z"$ - 1,336 $LK,"OptPass789A.CPP.Z","FI:D:/SparrowOS/Compiler/OptPass789A.CPP.Z"$ - 2,057 $LK,"StmtParser.CPP.Z","FI:D:/SparrowOS/Compiler/StmtParser.CPP.Z"$ - 880 $LK,"Unassembler.CPP.Z","FI:D:/SparrowOS/Compiler/Unassembler.CPP.Z"$ - 400 $LK,"CmpDefs.HPP.Z","FI:D:/SparrowOS/Compiler/CmpDefs.HPP.Z"$ - 85 $LK,"Compiler.HPP.Z","FI:D:/SparrowOS/Compiler/Compiler.HPP.Z"$ - 26 $LK,"Compiler.PRJ.Z","FI:D:/SparrowOS/Compiler/Compiler.PRJ.Z"$ -$ID,-2$ 26,971 $TR,"Demo"$ -$ID,2$ 2,171 $TR,"AcctExample"$ -$ID,2$ 847 $TR,"TAD"$ -$ID,2$ 822 $TR,"Archive"$ -$ID,2$ 489 $LK,"FileSysISO3.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP.Z"$ - 218 $LK,"USB.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP.Z"$ - 115 $LK,"USB1a.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP.Z"$ -$ID,-2$ 21 $LK,"Adam3aLocalize.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP.Z"$ - 4 $LK,"Registry.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TAD/Registry.CPP.Z"$ -$ID,-2$ 10 $LK,"Adam3bPkgs.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP.Z"$ - 267 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP.Z"$ - 10 $LK,"Adam3eWrappers.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/Adam3eWrappers.CPP.Z"$ - 50 $LK,"Adam3fSys.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/Adam3fSys.CPP.Z"$ - 13 $LK,"DoItOnce.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/DoItOnce.CPP.Z"$ - 414 $LK,"TSAdam.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z"$ - 544 $LK,"TSDistribute.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TSDistribute.CPP.Z"$ - 8 $LK,"TSIDComputer.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TSIDComputer.CPP.Z"$ - 8 $LK,"TSIDDft.CPP.Z","FI:D:/SparrowOS/Demo/AcctExample/TSIDDft.CPP.Z"$ -$ID,-2$ 424 $TR,"Asm"$ -$ID,2$ 84 $LK,"AsmAndC.CPP.Z","FI:D:/SparrowOS/Demo/Asm/AsmAndC.CPP.Z"$ - 99 $LK,"AsmAndC2.CPP.Z","FI:D:/SparrowOS/Demo/Asm/AsmAndC2.CPP.Z"$ - 53 $LK,"AsmHelloWorld.CPP.Z","FI:D:/SparrowOS/Demo/Asm/AsmHelloWorld.CPP.Z"$ - 49 $LK,"BuzzFizz.CPP.Z","FI:D:/SparrowOS/Demo/Asm/BuzzFizz.CPP.Z"$ - 24 $LK,"DivByHand.CPP.Z","FI:D:/SparrowOS/Demo/Asm/DivByHand.CPP.Z"$ - 71 $LK,"MulByHand.CPP.Z","FI:D:/SparrowOS/Demo/Asm/MulByHand.CPP.Z"$ - 44 $LK,"PutDec.CPP.Z","FI:D:/SparrowOS/Demo/Asm/PutDec.CPP.Z"$ -$ID,-2$ 111 $TR,"AutoFile"$ -$ID,2$ 16 $LK,"AFDir.AUT.Z","FI:D:/SparrowOS/Demo/AutoFile/AFDir.AUT.Z"$ - 29 $LK,"AFEd.AUT.Z","FI:D:/SparrowOS/Demo/AutoFile/AFEd.AUT.Z"$ - 27 $LK,"AFPopUpWait.AUT.Z","FI:D:/SparrowOS/Demo/AutoFile/AFPopUpWait.AUT.Z"$ - 12 $LK,"AFProfile.AUT.Z","FI:D:/SparrowOS/Demo/AutoFile/AFProfile.AUT.Z"$ - 13 $LK,"AFPopUp.CPP.Z","FI:D:/SparrowOS/Demo/AutoFile/AFPopUp.CPP.Z"$ - 14 $LK,"AFSetIP.CPP.Z","FI:D:/SparrowOS/Demo/AutoFile/AFSetIP.CPP.Z"$ -$ID,-2$ 627 $TR,"Doc"$ -$ID,2$ 94 $LK,"CallBack.CPP.Z","FI:D:/SparrowOS/Demo/Doc/CallBack.CPP.Z"$ - 36 $LK,"CallBackAux2.CPP.Z","FI:D:/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z"$ - 39 $LK,"CursorMove.CPP.Z","FI:D:/SparrowOS/Demo/Doc/CursorMove.CPP.Z"$ - 65 $LK,"Data.CPP.Z","FI:D:/SparrowOS/Demo/Doc/Data.CPP.Z"$ - 25 $LK,"DefineStr.CPP.Z","FI:D:/SparrowOS/Demo/Doc/DefineStr.CPP.Z"$ - 69 $LK,"FileRead.CPP.Z","FI:D:/SparrowOS/Demo/Doc/FileRead.CPP.Z"$ - 45 $LK,"Form.CPP.Z","FI:D:/SparrowOS/Demo/Doc/Form.CPP.Z"$ - 77 $LK,"MenuButton.CPP.Z","FI:D:/SparrowOS/Demo/Doc/MenuButton.CPP.Z"$ - 35 $LK,"MenuSprite.CPP.Z","FI:D:/SparrowOS/Demo/Doc/MenuSprite.CPP.Z"$ - 25 $LK,"TextDemo.CPP.Z","FI:D:/SparrowOS/Demo/Doc/TextDemo.CPP.Z"$ - 32 $LK,"TreeDemo.CPP.Z","FI:D:/SparrowOS/Demo/Doc/TreeDemo.CPP.Z"$ - 85 $LK,"UnusedDefine.CPP.Z","FI:D:/SparrowOS/Demo/Doc/UnusedDefine.CPP.Z"$ -$ID,-2$ 176 $TR,"Dsk"$ -$ID,2$ 69 $LK,"DataBase.CPP.Z","FI:D:/SparrowOS/Demo/Dsk/DataBase.CPP.Z"$ - 28 $LK,"FPrintF.CPP.Z","FI:D:/SparrowOS/Demo/Dsk/FPrintF.CPP.Z"$ - 20 $LK,"OrderedIO.CPP.Z","FI:D:/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z"$ - 42 $LK,"Raw.CPP.Z","FI:D:/SparrowOS/Demo/Dsk/Raw.CPP.Z"$ - 17 $LK,"UnusedSpaceRep.CPP.Z","FI:D:/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP.Z"$ -$ID,-2$ 11,012 $TR,"GameStarters"$ -$ID,2$ 172 $TR,"Stadium"$ -$ID,2$ 141 $LK,"Stadium.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Stadium/Stadium.CPP.Z"$ - 31 $LK,"StadiumGen.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Stadium/StadiumGen.CPP.Z"$ -$ID,-2$ 328 $LK,"BigGuns.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/BigGuns.CPP.Z"$ - 253 $LK,"BirdLand.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/BirdLand.CPP.Z"$ - 152 $LK,"BlackDiamond.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/BlackDiamond.CPP.Z"$ - 247 $LK,"Bomber.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Bomber.CPP.Z"$ - 1,046 $LK,"Chess.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Chess.CPP.Z"$ - 257 $LK,"ChessNet.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/ChessNet.CPP.Z"$ - 125 $LK,"CircleTrace.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/CircleTrace.CPP.Z"$ - 172 $LK,"Coach.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Coach.CPP.Z"$ - 168 $LK,"Collision.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Collision.CPP.Z"$ - 468 $LK,"DunGen.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/DunGen.CPP.Z"$ - 990 $LK,"EagleDive.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z"$ - 569 $LK,"FPS.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/FPS.CPP.Z"$ - 164 $LK,"Halogen.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Halogen.CPP.Z"$ - 190 $LK,"MassSpring.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/MassSpring.CPP.Z"$ - 231 $LK,"MissileDefense.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/MissileDefense.CPP.Z"$ - 770 $LK,"Navy.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Navy.CPP.Z"$ - 193 $LK,"RainDrops.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/RainDrops.CPP.Z"$ - 523 $LK,"RawHide.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/RawHide.CPP.Z"$ - 193 $LK,"Rocket.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Rocket.CPP.Z"$ - 307 $LK,"RocketScience.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/RocketScience.CPP.Z"$ - 683 $LK,"Rocks.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Rocks.CPP.Z"$ - 139 $LK,"SpaceShip.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/SpaceShip.CPP.Z"$ - 408 $LK,"Squirt.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Squirt.CPP.Z"$ - 206 $LK,"TheDead.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/TheDead.CPP.Z"$ - 125 $LK,"TicTacToe.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/TicTacToe.CPP.Z"$ - 332 $LK,"Varoom.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Varoom.CPP.Z"$ - 372 $LK,"WarGame.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/WarGame.CPP.Z"$ - 532 $LK,"Wenceslas.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Wenceslas.CPP.Z"$ - 174 $LK,"Whap.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Whap.CPP.Z"$ - 201 $LK,"Zing.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/Zing.CPP.Z"$ - 322 $LK,"ZoneOut.CPP.Z","FI:D:/SparrowOS/Demo/GameStarters/ZoneOut.CPP.Z"$ -$ID,-2$ 5,958 $TR,"Graphics"$ -$ID,2$ 118 $LK,"3DPoly.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/3DPoly.CPP.Z"$ - 33 $LK,"BSpline.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/BSpline.CPP.Z"$ - 243 $LK,"Bling.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Bling.CPP.Z"$ - 35 $LK,"Blink.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Blink.CPP.Z"$ - 42 $LK,"Blot.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Blot.CPP.Z"$ - 58 $LK,"Bounce.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Bounce.CPP.Z"$ - 54 $LK,"Box.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Box.CPP.Z"$ - 65 $LK,"CPUPlot.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/CPUPlot.CPP.Z"$ - 325 $LK,"Camp.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Camp.CPP.Z"$ - 28 $LK,"CaptureScreen.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/CaptureScreen.CPP.Z"$ - 50 $LK,"Cartesian.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Cartesian.CPP.Z"$ - 36 $LK,"CharGraphics.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/CharGraphics.CPP.Z"$ - 1,187 $LK,"Circuit.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Circuit.CPP.Z"$ - 120 $LK,"CommonAncestor.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/CommonAncestor.CPP.Z"$ - 17 $LK,"Dither.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Dither.CPP.Z"$ - 49 $LK,"Doodle.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Doodle.CPP.Z"$ - 15 $LK,"DotNet.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/DotNet.CPP.Z"$ - 109 $LK,"EdCSprite.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/EdCSprite.CPP.Z"$ - 51 $LK,"Extents.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Extents.CPP.Z"$ - 233 $LK,"Flowers.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Flowers.CPP.Z"$ - 143 $LK,"FontEd.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/FontEd.CPP.Z"$ - 55 $LK,"Golf.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Golf.CPP.Z"$ - 142 $LK,"Hanoi.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Hanoi.CPP.Z"$ - 98 $LK,"Life.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Life.CPP.Z"$ - 27 $LK,"Lines.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Lines.CPP.Z"$ - 52 $LK,"Logo.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Logo.CPP.Z"$ - 83 $LK,"LowPassFilter.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/LowPassFilter.CPP.Z"$ - 101 $LK,"MathAudioDemo.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/MathAudioDemo.CPP.Z"$ - 98 $LK,"Mountain.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Mountain.CPP.Z"$ - 119 $LK,"MyWallPaper.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z"$ - 22 $LK,"NeatTrick.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/NeatTrick.CPP.Z"$ - 28 $LK,"Palette.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Palette.CPP.Z"$ - 102 $LK,"Pic2ASCII.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Pic2ASCII.CPP.Z"$ - 98 $LK,"Pick.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Pick.CPP.Z"$ - 331 $LK,"Pick3D.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Pick3D.CPP.Z"$ - 93 $LK,"PixelCollision.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/PixelCollision.CPP.Z"$ - 172 $LK,"PoleZeros.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/PoleZeros.CPP.Z"$ - 83 $LK,"PredatorPrey.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/PredatorPrey.CPP.Z"$ - 82 $LK,"RotateTank.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/RotateTank.CPP.Z"$ - 72 $LK,"ScrollBars.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/ScrollBars.CPP.Z"$ - 181 $LK,"Shading.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Shading.CPP.Z"$ - 109 $LK,"Shadow.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Shadow.CPP.Z"$ - 112 $LK,"SliderCtrl.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z"$ - 50 $LK,"Speedline.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Speedline.CPP.Z"$ - 66 $LK,"SpritePlot.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z"$ - 63 $LK,"SpritePlot3D.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z"$ - 47 $LK,"SpritePut.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/SpritePut.CPP.Z"$ - 29 $LK,"SpritePutExt.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/SpritePutExt.CPP.Z"$ - 23 $LK,"SpriteText.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/SpriteText.CPP.Z"$ - 62 $LK,"Symmetry.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Symmetry.CPP.Z"$ - 220 $LK,"Transform.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/Transform.CPP.Z"$ - 104 $LK,"WallPaperCtrl.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/WallPaperCtrl.CPP.Z"$ - 23 $LK,"WinZBuf.CPP.Z","FI:D:/SparrowOS/Demo/Graphics/WinZBuf.CPP.Z"$ -$ID,-2$ 1,442 $TR,"Lectures"$ -$ID,2$ 54 $LK,"AndNotMod.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/AndNotMod.CPP.Z"$ - 104 $LK,"FixedPoint.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$ - 165 $LK,"FixedPointAdvanced.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/FixedPointAdvanced.CPP.Z"$ - 77 $LK,"GraphicsCPULoad.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z"$ - 91 $LK,"InterruptDemo.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/InterruptDemo.CPP.Z"$ - 225 $LK,"MiniCompiler.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/MiniCompiler.CPP.Z"$ - 136 $LK,"MiniGrLib.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z"$ - 116 $LK,"Optimization.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/Optimization.CPP.Z"$ - 74 $LK,"PCIInterrupts.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/PCIInterrupts.CPP.Z"$ - 49 $LK,"PageTableEntries1.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/PageTableEntries1.CPP.Z"$ - 47 $LK,"PageTableEntries2.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/PageTableEntries2.CPP.Z"$ - 84 $LK,"Ring3.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/Ring3.CPP.Z"$ - 56 $LK,"ScreenMemory.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/ScreenMemory.CPP.Z"$ - 110 $LK,"Spinning.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/Spinning.CPP.Z"$ - 54 $LK,"Uncached.CPP.Z","FI:D:/SparrowOS/Demo/Lectures/Uncached.CPP.Z"$ -$ID,-2$ 1,185 $TR,"MultiCore"$ -$ID,2$ 195 $LK,"Clouds.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Clouds.CPP.Z"$ - 25 $LK,"Interrupts.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Interrupts.CPP.Z"$ - 132 $LK,"Layers3DJob.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Layers3DJob.CPP.Z"$ - 84 $LK,"LayersSpawn.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/LayersSpawn.CPP.Z"$ - 58 $LK,"LoadTest.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z"$ - 65 $LK,"Lock.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Lock.CPP.Z"$ - 86 $LK,"MPAdd.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/MPAdd.CPP.Z"$ - 19 $LK,"MPPrintF.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/MPPrintF.CPP.Z"$ - 64 $LK,"Noise.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Noise.CPP.Z"$ - 100 $LK,"Palindrome.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Palindrome.CPP.Z"$ - 77 $LK,"Primes.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Primes.CPP.Z"$ - 166 $LK,"RadixSort.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/RadixSort.CPP.Z"$ - 114 $LK,"Sort.CPP.Z","FI:D:/SparrowOS/Demo/MultiCore/Sort.CPP.Z"$ -$ID,-2$ 183 $TR,"OldSchool"$ -$ID,2$ 63 $TR,"Demo1"$ -$ID,2$ 9 $LK,"MD1.CPP.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo1/MD1.CPP.Z"$ - 9 $LK,"MD2.CPP.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo1/MD2.CPP.Z"$ - 29 $LK,"MDMain.CPP.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo1/MDMain.CPP.Z"$ - 2 $LK,"ModuleDemo.HPP.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.HPP.Z"$ - 14 $LK,"ModuleDemo.PRJ.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ.Z"$ -$ID,-2$ 120 $TR,"Demo2"$ -$ID,2$ 25 $LK,"MakeFile.CPP.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo2/MakeFile.CPP.Z"$ - 12 $LK,"ObjDemo.HPP.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo2/ObjDemo.HPP.Z"$ - 13 $LK,"OD1.PRJ.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo2/OD1.PRJ.Z"$ - 32 $LK,"OD2.PRJ.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo2/OD2.PRJ.Z"$ - 38 $LK,"ODMain.PRJ.Z","FI:D:/SparrowOS/Demo/OldSchool/Demo2/ODMain.PRJ.Z"$ -$ID,-2$$ID,-2$ 26 $TR,"Shared"$ -$ID,2$ 26 $LK,"TreeDemoJoin.CPP.Z","FI:D:/SparrowOS/Demo/Shared/TreeDemoJoin.CPP.Z"$ -$ID,-2$ 1,145 $TR,"Snd"$ -$ID,2$ 52 $LK,"ASCIIOrgan.CPP.Z","FI:D:/SparrowOS/Demo/Snd/ASCIIOrgan.CPP.Z"$ - 69 $LK,"BeatFreq.CPP.Z","FI:D:/SparrowOS/Demo/Snd/BeatFreq.CPP.Z"$ - 97 $LK,"Echo.CPP.Z","FI:D:/SparrowOS/Demo/Snd/Echo.CPP.Z"$ - 182 $LK,"MorseCode.CPP.Z","FI:D:/SparrowOS/Demo/Snd/MorseCode.CPP.Z"$ - 42 $LK,"OhGreat.CPP.Z","FI:D:/SparrowOS/Demo/Snd/OhGreat.CPP.Z"$ - 99 $LK,"PolyPhonic.CPP.Z","FI:D:/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z"$ - 121 $LK,"Record.CPP.Z","FI:D:/SparrowOS/Demo/Snd/Record.CPP.Z"$ - 47 $LK,"SndScope.CPP.Z","FI:D:/SparrowOS/Demo/Snd/SndScope.CPP.Z"$ - 281 $LK,"Synth.CPP.Z","FI:D:/SparrowOS/Demo/Snd/Synth.CPP.Z"$ - 155 $LK,"WaterFowl.CPP.Z","FI:D:/SparrowOS/Demo/Snd/WaterFowl.CPP.Z"$ -$ID,-2$ 508 $TR,"WebLogExample"$ -$ID,2$ 444 $LK,"WebLogRep.CPP.Z","FI:D:/SparrowOS/Demo/WebLogExample/WebLogRep.CPP.Z"$ - 64 $LK,"WebLogScramble.CPP.Z","FI:D:/SparrowOS/Demo/WebLogExample/WebLogScramble.CPP.Z"$ -$ID,-2$ 82 $LK,"ClassMeta.CPP.Z","FI:D:/SparrowOS/Demo/ClassMeta.CPP.Z"$ - 38 $LK,"CompileDemo.CPP.Z","FI:D:/SparrowOS/Demo/CompileDemo.CPP.Z"$ - 43 $LK,"DateTime.CPP.Z","FI:D:/SparrowOS/Demo/DateTime.CPP.Z"$ - 30 $LK,"DbgDemo.CPP.Z","FI:D:/SparrowOS/Demo/DbgDemo.CPP.Z"$ - 41 $LK,"Define.CPP.Z","FI:D:/SparrowOS/Demo/Define.CPP.Z"$ - 78 $LK,"Digits.CPP.Z","FI:D:/SparrowOS/Demo/Digits.CPP.Z"$ - 72 $LK,"Exceptions.CPP.Z","FI:D:/SparrowOS/Demo/Exceptions.CPP.Z"$ - 37 $LK,"ExtendedChars.CPP.Z","FI:D:/SparrowOS/Demo/ExtendedChars.CPP.Z"$ - 95 $LK,"GlblVars.CPP.Z","FI:D:/SparrowOS/Demo/GlblVars.CPP.Z"$ - 45 $LK,"KeyBitMap.CPP.Z","FI:D:/SparrowOS/Demo/KeyBitMap.CPP.Z"$ - 373 $LK,"MagicPairs.CPP.Z","FI:D:/SparrowOS/Demo/MagicPairs.CPP.Z"$ - 108 $LK,"Maze.CPP.Z","FI:D:/SparrowOS/Demo/Maze.CPP.Z"$ - 21 $LK,"MsgLoop.CPP.Z","FI:D:/SparrowOS/Demo/MsgLoop.CPP.Z"$ - 20 $LK,"ParenWarn.CPP.Z","FI:D:/SparrowOS/Demo/ParenWarn.CPP.Z"$ - 65 $LK,"PhoneNumWords.CPP.Z","FI:D:/SparrowOS/Demo/PhoneNumWords.CPP.Z"$ - 34 $LK,"PrintF.CPP.Z","FI:D:/SparrowOS/Demo/PrintF.CPP.Z"$ - 37 $LK,"Progress.CPP.Z","FI:D:/SparrowOS/Demo/Progress.CPP.Z"$ - 26 $LK,"Prompt.CPP.Z","FI:D:/SparrowOS/Demo/Prompt.CPP.Z"$ - 90 $LK,"PullDownMenu.CPP.Z","FI:D:/SparrowOS/Demo/PullDownMenu.CPP.Z"$ - 27 $LK,"RegistryDemo.CPP.Z","FI:D:/SparrowOS/Demo/RegistryDemo.CPP.Z"$ - 26 $LK,"ScreenCodes.CPP.Z","FI:D:/SparrowOS/Demo/ScreenCodes.CPP.Z"$ - 66 $LK,"Spy.CPP.Z","FI:D:/SparrowOS/Demo/Spy.CPP.Z"$ - 55 $LK,"StkGrow.CPP.Z","FI:D:/SparrowOS/Demo/StkGrow.CPP.Z"$ - 33 $LK,"SubIntAccess.CPP.Z","FI:D:/SparrowOS/Demo/SubIntAccess.CPP.Z"$ - 92 $LK,"SuggestSpelling.CPP.Z","FI:D:/SparrowOS/Demo/SuggestSpelling.CPP.Z"$ - 45 $LK,"TimeIns.CPP.Z","FI:D:/SparrowOS/Demo/TimeIns.CPP.Z"$ - 168 $LK,"WinMgr2.CPP.Z","FI:D:/SparrowOS/Demo/WinMgr2.CPP.Z"$ - 156 $LK,"WordSearch.CPP.Z","FI:D:/SparrowOS/Demo/WordSearch.CPP.Z"$ -$ID,-2$ 0 $TR,"Doc"$ -$ID,2$$ID,-2$ 3,147 $TR,"Misc"$ -$ID,2$ 696 $TR,"Tour"$ -$ID,2$ 40 $LK,"Tour.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour.AUT.Z"$ - 109 $LK,"Tour1.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour1.AUT.Z"$ - 125 $LK,"Tour2.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour2.AUT.Z"$ - 113 $LK,"Tour3.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour3.AUT.Z"$ - 38 $LK,"Tour4.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour4.AUT.Z"$ - 59 $LK,"Tour5.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour5.AUT.Z"$ - 77 $LK,"Tour6.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour6.AUT.Z"$ - 40 $LK,"Tour7.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour7.AUT.Z"$ - 55 $LK,"Tour8.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour8.AUT.Z"$ - 29 $LK,"Tour9.AUT.Z","FI:D:/SparrowOS/Misc/Tour/Tour9.AUT.Z"$ - 11 $LK,"TourA.AUT.Z","FI:D:/SparrowOS/Misc/Tour/TourA.AUT.Z"$ -$ID,-2$ 32 $LK,"Dollar.CPP.Z","FI:D:/SparrowOS/Misc/Dollar.CPP.Z"$ - 2,419 $LK,"OSTestSuite.CPP.Z","FI:D:/SparrowOS/Misc/OSTestSuite.CPP.Z"$ -$ID,-2$ 25,073 $TR,"OSMain"$ -$ID,2$ 5,699 $TR,"Dsk"$ -$ID,2$ 653 $LK,"Dsk1a.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/Dsk1a.CPP.Z"$ - 469 $LK,"Dsk1b.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/Dsk1b.CPP.Z"$ - 387 $LK,"Dsk1c.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/Dsk1c.CPP.Z"$ - 656 $LK,"DskATA.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/DskATA.CPP.Z"$ - 362 $LK,"DskAddDev.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/DskAddDev.CPP.Z"$ - 282 $LK,"DskCFile.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/DskCFile.CPP.Z"$ - 178 $LK,"DskCache.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/DskCache.CPP.Z"$ - 269 $LK,"DskDir.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/DskDir.CPP.Z"$ - 380 $LK,"DskStr.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/DskStr.CPP.Z"$ - 1,002 $LK,"FileSysFAT.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/FileSysFAT.CPP.Z"$ - 313 $LK,"FileSysISO1.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/FileSysISO1.CPP.Z"$ - 716 $LK,"FileSysNative.CPP.Z","FI:D:/SparrowOS/OSMain/Dsk/FileSysNative.CPP.Z"$ - 32 $LK,"ATADef.HPP.Z","FI:D:/SparrowOS/OSMain/Dsk/ATADef.HPP.Z"$ -$ID,-2$ 1,263 $TR,"KbdMouse"$ -$ID,2$ 129 $LK,"InputPointer.CPP.Z","FI:D:/SparrowOS/OSMain/KbdMouse/InputPointer.CPP.Z"$ - 547 $LK,"Keyboard.CPP.Z","FI:D:/SparrowOS/OSMain/KbdMouse/Keyboard.CPP.Z"$ - 234 $LK,"Message.CPP.Z","FI:D:/SparrowOS/OSMain/KbdMouse/Message.CPP.Z"$ - 353 $LK,"Mouse.CPP.Z","FI:D:/SparrowOS/OSMain/KbdMouse/Mouse.CPP.Z"$ -$ID,-2$ 13 $LK,"Adam1.CPP.Z","FI:D:/SparrowOS/OSMain/Adam1.CPP.Z"$ - 401 $LK,"BIOS32.CPP.Z","FI:D:/SparrowOS/OSMain/BIOS32.CPP.Z"$ - 325 $LK,"Compress.CPP.Z","FI:D:/SparrowOS/OSMain/Compress.CPP.Z"$ - 198 $LK,"Date.CPP.Z","FI:D:/SparrowOS/OSMain/Date.CPP.Z"$ - 559 $LK,"Dbg1a.CPP.Z","FI:D:/SparrowOS/OSMain/Dbg1a.CPP.Z"$ - 130 $LK,"Define1a.CPP.Z","FI:D:/SparrowOS/OSMain/Define1a.CPP.Z"$ - 280 $LK,"Display.CPP.Z","FI:D:/SparrowOS/OSMain/Display.CPP.Z"$ - 287 $LK,"EdLite.CPP.Z","FI:D:/SparrowOS/OSMain/EdLite.CPP.Z"$ - 231 $LK,"Except.CPP.Z","FI:D:/SparrowOS/OSMain/Except.CPP.Z"$ - 170 $LK,"FIFO.CPP.Z","FI:D:/SparrowOS/OSMain/FIFO.CPP.Z"$ - 262 $LK,"Font8x8.CPP.Z","FI:D:/SparrowOS/OSMain/Font8x8.CPP.Z"$ - 801 $LK,"Hash1a.CPP.Z","FI:D:/SparrowOS/OSMain/Hash1a.CPP.Z"$ - 242 $LK,"Interrupts.CPP.Z","FI:D:/SparrowOS/OSMain/Interrupts.CPP.Z"$ - 622 $LK,"Math1a.CPP.Z","FI:D:/SparrowOS/OSMain/Math1a.CPP.Z"$ - 227 $LK,"Math1b.CPP.Z","FI:D:/SparrowOS/OSMain/Math1b.CPP.Z"$ - 1,425 $LK,"Memory.CPP.Z","FI:D:/SparrowOS/OSMain/Memory.CPP.Z"$ - 385 $LK,"Misc1a.CPP.Z","FI:D:/SparrowOS/OSMain/Misc1a.CPP.Z"$ - 522 $LK,"MultiProc.CPP.Z","FI:D:/SparrowOS/OSMain/MultiProc.CPP.Z"$ - 234 $LK,"OSCfg.CPP.Z","FI:D:/SparrowOS/OSMain/OSCfg.CPP.Z"$ - 258 $LK,"OSEnd.CPP.Z","FI:D:/SparrowOS/OSMain/OSEnd.CPP.Z"$ - 105 $LK,"OSExts.CPP.Z","FI:D:/SparrowOS/OSMain/OSExts.CPP.Z"$ - 133 $LK,"OSGlbls.CPP.Z","FI:D:/SparrowOS/OSMain/OSGlbls.CPP.Z"$ - 536 $LK,"OSStart.CPP.Z","FI:D:/SparrowOS/OSMain/OSStart.CPP.Z"$ - 257 $LK,"PSect.CPP.Z","FI:D:/SparrowOS/OSMain/PSect.CPP.Z"$ - 248 $LK,"QSort.CPP.Z","FI:D:/SparrowOS/OSMain/QSort.CPP.Z"$ - 415 $LK,"Scheduler.CPP.Z","FI:D:/SparrowOS/OSMain/Scheduler.CPP.Z"$ - 2,666 $LK,"Str1a.CPP.Z","FI:D:/SparrowOS/OSMain/Str1a.CPP.Z"$ - 587 $LK,"Task1a.CPP.Z","FI:D:/SparrowOS/OSMain/Task1a.CPP.Z"$ - 423 $LK,"TaskCmd.CPP.Z","FI:D:/SparrowOS/OSMain/TaskCmd.CPP.Z"$ - 331 $LK,"Utils1a.CPP.Z","FI:D:/SparrowOS/OSMain/Utils1a.CPP.Z"$ - 3,608 $LK,"Adam1a.HPP.Z","FI:D:/SparrowOS/OSMain/Adam1a.HPP.Z"$ - 302 $LK,"Adam1b.HPP.Z","FI:D:/SparrowOS/OSMain/Adam1b.HPP.Z"$ - 809 $LK,"Adam1c.HPP.Z","FI:D:/SparrowOS/OSMain/Adam1c.HPP.Z"$ - 31 $LK,"BootDefs.HPP.Z","FI:D:/SparrowOS/OSMain/BootDefs.HPP.Z"$ - 15 $LK,"Static.HPP.Z","FI:D:/SparrowOS/OSMain/Static.HPP.Z"$ - 3 $LK,"StaticAdam.HPP.Z","FI:D:/SparrowOS/OSMain/StaticAdam.HPP.Z"$ - 70 $LK,"OSMain.PRJ.Z","FI:D:/SparrowOS/OSMain/OSMain.PRJ.Z"$ -$ID,-2$$ID,-2$ \ No newline at end of file diff --git a/SparrowOS/Accts/TS/Wb2/Menu.BMP b/SparrowOS/Accts/TS/Wb2/Menu.BMP deleted file mode 100644 index f33112706b1b909cc5190bffcea22b272504c1e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153718 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 diff --git a/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT b/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT deleted file mode 100644 index e09b4c1..0000000 --- a/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT +++ /dev/null @@ -1,14 +0,0 @@ - -$HI,"http://www.sparrowos.com/Wb/Accts/TS/Wb2/SparrowOS.BMP"$ - - - -$HI,"http://www.sparrowos.com/Wb/Accts/TS/Wb2/Menu.BMP"$ -$TX+CX,"Your personal menu is a document with icons."$ - - - -$HI,"http://www.sparrowos.com/Wb/Accts/TS/Wb2/Tanks.BMP"$ -$TX+CX,"This is a tank war game."$ - - diff --git a/SparrowOS/Accts/TS/Wb2/SparrowOS.BMP b/SparrowOS/Accts/TS/Wb2/SparrowOS.BMP deleted file mode 100644 index b025780b603e640fb9f05daedd789b6415fbeb44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153718 zcmZ?rEsJ1c0D&?F1_liV28ISE28IWW3=E76EFfV92B7NJt37pO6rSkUt>|fBu9pgoONI_!IJnA>_{=hChG)F#P}j?%lh0|EU0| zWeydbLRTZO`}?Dyp!|P9!T%rSiFFKibBNVVt~%1)iQOjh&3Pv%h$a1j!tJ9x2x7Mn zQxv;7nChr2Lb^M#+fTMRA3^>W!~n?VVMt;T_%Ddv94tzyDnzO~p_a=-X*flmIr9Ji zgToIqPCkP3?nikLjVX&o1RQ=?#Az%9avvy{fN0{a0)-Z;YLI@C%>fyMEBrt~OG^F) zhaWsTX~IDDF@y*90@R(zmO^APNr)PdE>t;?2sr$RF7N;U2UiXsv6uTKnjnj7$ic~@PpOAAR1u}Zq`7BAIN>6vIa!sb{(n=w(tY#C)FHCpre{i zE)R>F$Tf=Q`l#jB(eR@zsz$?aH2la3fzkX+PN*UDjD{Z~EXZMvh95bhhR`z_eu%Ij zhcz00h94p< z$YG6!A333h&@&o-h_E1sH5z{8gc?H6X!s$*f*jUp_>mK82tA|WhX@ODSfk-bPN*UD zjD{Z~EXZMvh95bhhR`z_eu%Ijhcz00@k~ANh~qGY9{J#6f4PfF)=^ z4A$`bqz?%@P{@JVNa3ds3QBOuf)qglMG$lZ7bKv-q##(}|9?T~*<27+)F%gP_$h(B ziU=cc(gPEqu!G5gXs|+XIDyXW0*Qdne*^_02!p~8BuFbfNW%{tRG|E;qy$c5pOloq z0SC&vU^Yk&l&4{t8l2of0R~Nn$mx$(VFxmIkcQuXNN|DkFer$?;RzbBt$bjSi=uo=Hbr25E-x{NYLQQr?|u+x+o_HYxsfE z6*!MV>t9eE49d%(Y6L`s@-rAig8*ANfwD6;ai|umP=hx7sNy@?8!{Sxl!ftV_>G1i zWg$SB?$Pu&8h(_80A;#I)8Ai zsi5=(;UP$HxPc@<;{?dz3kh+sHkuNHH2gs2*GGBioCdu70~K>%G4R|5SPe)HG~WTH zkI0HQI0S+!u_#p{{#ppo{ z*6>62J19RQ^9K`qu!bKf%s^=h99E!q3bfn<@j-5e)xV(mU62@v2I&E@K{WIZ81Vcr zObnz3DUE{4Pk22I)dQ9Wvtji*)DbW-kXgtWsu7t2xfPjDE*oSI2$QQHSs%zv zptc++&p_P{3Of)6DFcTeIE5kk3FcoU^(bKmavLlxL56_Tf!aNwHaLh4ra^bqfouWM zp#CGs5s+pOSQP3WsCEbiaw~*I83}S92vcSXL^sGypynIYzaY1R$|*1n_UnI8`UB7H zg3B2$Q85O%u#b(C|Z(MdiZOz-YKE)G^57$ZS~n!PTQNU}~YpfMsD~U=Eak zxfRMKn*!Mb!ekqOq!HvMkXfMm5=j^<6Xquv4OaxsdoXd3c`!Cq4J_?Kxu_J(Zcsje z$-u;5d=L$CD~P5PgWLzgl$rz5Pc1ir%pw63?R?~Tz~NSs_pg8~2VoN2i&H7Mbpoyr z!DSq{4F@ipAYx#B;PMSrR)NJp{b3OP4^j(GS4eIF*Qe051Cj%mYvA$>GL8tU%Ry#> zwIGRu)qy2I_Q2{Ba76_YgS!zBR37l>~ega21#Ft<(kY7PD!D>MjH^?{;2V_1dSwqCY=7SW&Fev?j%mxQJ z$OMoc!GRAya2SHz19d+rgrH&|r-Nj`7!gusBpbm<>`4!=Ug3B}$Op;1~fLFyQGA<~%Ts9_L^|kUK$P2j)NskPtStXyPC) zL<1yj!RZYqfFcPML^czd4Uz_jA2{&9aR`p%K~VmIoCe3}ZU#$0JqoQ?!9t+68Wy$S zG80K0suQf`KS&Qa5kj~SJ}g{eVo(}HA(;c>{s)I2w0s1mQIL6p17H7w-9{vV5*{!; zpgag;lS>n01~mN0wF0gWSX42Cp5#ZEP?PWIt36RwqD$5hMXAD?#c&7*yngj03U3vS57> zH6T48aTGJ)Q2>e%c}UQLG(y`1VD(^Uf&@V(lZZjuK$t{rSe2uPA1I9=D+K!$)YbeDh_3X#X-tIT0r3n4oZ1YM-FTcIHDkKh0pPW>ne~QQZdL55GGY0 zHubRd2TEQbGttWwkpDnpAPn*ohz4P>T2TKJTN0!mWH&g? zfddwtP9gH3;t^cNf%SpvWUx5ME>OyaxeH_kDE#CF?V+zpg0AUQy{aTY*3B?alvg2h#0v10=LsZe2^q~4Iwmr z{Qv*|i~kq@|1K{7LF5+~7k`ivm>5VFEC&j+FJLub9U#SEaeuH1FagsG(huu@fZ3D~ zAb)}|C1(6b3O|@x;Ia-BS`YyU3qpddg0sNtK=lQv3g-%hQV$^&g#f{1uRJ>0rCzA zD4f9I2hOMdps)ky zYmhi7{6OIZ4nG%=2$%;FhNuJS0T~Pt2C?Xu{y^UT{~uTQK?4p-f!YMn@(%2GXc&SW z3<_5eA4G!$K4$%#=@;@kmAq+Z)-$$au50sujP6US^h=CJ>0uB^du&_r`2u^hk?Qegy90HjNu%9;PeS;TSD8HpcD?O+`;84xbA^eLjK^o3eE<# znP9;L3Of*n@zH1k;U@?w7>8#11C@&~3 z59ja$r73Vd4oYX>@Pm|pa4}dp2MRB!8b}Z!B|uQvfiOe@gCr{a4fkA-I&%qF+vjCp1wCr*Kji!&@F{js*@2@#ZUrSbQ2zwn zPX>4RKy5zc)(K(vfx-@iv8f~wevlDP&^!-X_<@eM0)-ps%qGw|fY9)RpM3=iM{M@d zQw$n@;CzW3ex!vSy!?aK0H{777=EDHEgazo3O6j_2TFsWa749e0C=GAgCsdn^#I0T zSD@D&U_m?tDD8ce2jxOcMbIHkP&S38FcdXlX^>7q=;R;BO`!Y>N`FY<2R`=?7M9?X z?Ldl9jG{jWlXo_{j^(%gYbp^aq+#{{O|F$T?%QpaXM9a`=G)04;xl@-Ym9q#-#P!oo@t z4nKK8P&o&hp9QIf*U+G@GpOJj!s!nbAZX!7a(fUICZO^UJdp@xP8#l5X^_#haP^gp?J_%6G8C!0VMyz)-@x_KaeCu z4pcx=A^bqDhqxO&83A=5NEG5=5DPRn3sM7OgD@zaKoyckfzltyAW-@PkDr1~1Ep)w zLYeIav5%8z)2xzmNa% zh97v(GHAFI>`rQipFe252`Jh@{V9J?8h}SM$VcEb1`9J#9*3;=1I<-{)Piyt*hwT2 zpzs3)5-3bSCVAMV+lV&P!A21Jq1A% zNuaQXBu~(u463C+h=FI;;=Y!nwbN>ICGw1)D58;7Ch{D*z z545@)lK!AA6wL4gSI$sbPzR69_8(D>q=6#AkMf|fg5dw4a0G`Ph)5r7~gLI5R zp$u-@fQg}(e<5WbD9pg+AgKKN{}WUuk`R2b^;hyA1wo62z~k|t!x-?^A0LNF`2B~Z zI8uTOLoFixjmYo=r9q4^Aw>W^{6Jg$Ks5(s`~Z9Vh05s<eSJ_7@s z&Oj$+fF@VKVF{9hm;qveQXJ^a0!R%BVkbQ{!3kfq2A1Y4XdW>a>Oz~>5o{o_|!qe4^)_eF|7QfQ}}_-6vA*GDEvU~LY4rf zQ5YX24`Y){gTjx3Yzwy*R0uz4*n#RO zQ2GK-RDpsEoPR+X1XLcvXiyiK!b+GH;irT>{DeT^_eoG*NC`*!1BIWEkP>D27nJD0 z*%nHGQwf;BzWEa@MLt38@B`&Q9O0*=sHiCTNl0G_5`N%i&!B1pRDVFSy`qqykP>C# z2TyCDvK=&dhUiLz>tE!Mf&?|P2G>T z^hpTR8v}RK zDi%RDsBCf3bugI8zFN!cS00=@Y2!3`%UE(1LW>K*cd2h?1fpsFntYrlO+!C&3XPexR~WQ3zDRK>`S#{`5g(GJ=9a zA3uS@4^+8;n|q2%pezjvKxiWnG&Vx5JV925BvBK!+zKkPz{47XN{XP)h7k7f6NH4H zAgGlM#!BF_P#;v6Kql%yi&H^{k?4L1CRZIx)Yxim6SfogIG#R`bwZdRY6$z zDJm*`gomGy5;%2^h97830W|mw%A!h2N|5jaWzJ7Z`bwao7C}MK5sF|ITKEZp77lIJFjKEVNN}%u)RQ&iK z7Ji^HeUL07`~;~Kejgan06(#LkP>y&&%Y?)CkPHdL5%Q|M+raB_yNV`-@t|+csdHS z7KzNF8`R{0v|nK12cFwSgdcRU0Gj?F;RnjVU~zE51zo}fN}6Q$KR&RaZt!-XSNa2a z9W+-3n#&`5js;{0*6>pTb#g!c*9V6aWK16t!r<{|CCDHQRl<(}HT)Qm!w)raBFj*c zc|mh5AWwrQ_rUX{pfDuML_*;Qs#3s-3p`T3B$?^&KLbhvbYMXC z2Tj8d>UZ!w7--%Z*?APa#(X%B?4Dnr%FdAX3#0`@Zu&zB zBnGtPhsfIus8R&{MMxSPe&EUjnt#chkH;Q<@`4{hEo1m9HjMNKNw2W_m%{KvN`Po# zgjBasH~3(24a&QqHHa8<%!I-pCXX}xzy%*P|ALlugNrypd3n%T(2y#cYUvM=0MWB3 zyl8Y_K+V@M=aWr?(;wNo5gOs)_aAha5I9+Z;shK@@L6=!@PlP>Nce#+kfbpE{f8w$ z^x*psD;cRCe6aL~2naG+DB%Yx&A{~sB$Z(gKTsG$5+it*Fg3ytmH^RmFFahSoOeM% zMU(VLDEvSNB!GesDgXYbO87w%AbRlqhZcV{2tKN(KhTZ=&_R=s%qb5Uu98P9|B%8D zk^(`O2Y^kUel6y*sl`S$~Z z3rc4g;&CdGR1QDT=^5bN70~v}pa?$})Uhlog&f2fdW7FcNc#_*>Okoaw85%rXc&H=!4&WYAJBEu|K*7YzyCDJzo6D1 za!gZ~P5t}}nu3BPI?%WZxO{`9KakTwqgvpS5LExd4iEz+Oz@GOG)R9mE&gbb{&0jJ zC}-mgKad0@{6O1AaKyPT=f8d#9@c18=@B@busGEUS{(*BYSQ1pt;9I|jF)|9# zg+yY6A8m_2x~4y{Hz^9g4+H}cGyG^;{0*`2`%iHC3_bj4T>Q}|{J;qhN>G&k{u2y9 zjPRpv@i!R458U{JhA!w96})cxKp+L8haZiLKag7yOB={zfxV9Czd_r7$n^(U1(d){ ze%D)%>ZJ74kZ5%I&a?}bQVA8 z9Cr{6)`cznK-Da`{{dD3B|d@%T0kR#@csvB;YT0<(ZY|`#UDKUkj~Qwg$o4xyL|Bn zVF(XIf&u{&-jI6^z-*8pYWRVcf`HCJg|z=b@^B0aKhUWdpx^^FRY09QxFn(W3rHdU z9E=`*G%o(Ihac>o08rTZyTH;P*6;(}%>eQh{lX8F0CD$2(87<_#UD8QK=+P-uB!m$ zQxFEPz+Ch(4hj<^amP1 z1-S{T7%K%@3yCuT(Zi3%#UIG6;CtUd!31?JID9~SaJYiYJy4kkzheX<54wU0Qci-k zp@*ORe^~y-8-Ac8c#+FLV#4n~C;-8hVj)n&kLJZ6DEz>#Kr8>iVi*KC2WqK+&nibT26Q4R+)ZdQ2rg)&0)mIaLJL1y7k_ZKB84BkPDODTh=UY< z5GF_vg6SH5pah5`2cw1`&5J*H_(4K}e3Gu=2hPFR0}w6zXkGjbbohbKutteB@QpMm zMIwqcl!G$|ql6#ri$7Y0ANVLHf9sO`ysKX%ItpuzCg&hbZl+hvlAUT+n6v#0eeux+X z?d$+&Vd4|u4{B#%+ND3xP#&K8gBtl47Jwv_fI}|)kdq548`6J66$A4~iBoX;V_+aU z1yZ{JB*m>@&*30IWgiG5OQVe(AWMPRR0%&w6+(OwNbLd;7Ji_e^`Py|;MK{{F%gg) z=sfg~kb5&geuiA!0cN2Rps)jBWKncJvK*-8jBAt+WG|Xp++1h?5}N?2T>wJe3SJce z-c%3rGzf!=FG!$*hDbp2AV0up5E})9w16fW z!9da<=$;nPxjM+$Q^ zc?e;llAy2xVPsKsKC&G3@-I99iA#V~E&yTS2lpEmPeYE^fvdpE0BHkZ6iHka1VjIR7#b*$Sj?0Z6i2VQxmFLE#L- zXu|lo)C)go9ZXyiNZkT(0K*Sw*pluhXd{rQZU}V?K+@fc-P@qF2g2B8NfRZ*O|TqH zOc6-c0+0;1Vhs#X*nu!sNfHIgaT6>6iKv9BS^$#cR&2om3Of+SCP%6mIc|dGU?LJA zRSQ6J+=?wcKw$^M*yKnRBg;*&1W33Hq-p_3mRqp|2q^487>g9iLS(rKmH>&UgsE8o zlI2z`Ap#0J5XK@!vJiQ0f(IbMB9NK|AbD=Z3=&Y-fiR{F=^|vh37&%qm4VbO070AU zLF0a){w}C*3mvk8^oLQ#{XqLRz)fDz2n|#ov_~Iwk1A;J27*ZsEleF`h95iu5-I|z zSpb5=542(#yPbKpq`G!6&~83YD-3C4r45#a|4GLYOL3qJxWkctH$D6T;m6fmH1 zKX4iZ-7yTo;CqN6a-frgKr9dq+F=eU521PnTlnEG0;yO4!om(5GQ<&}L%%RoLJ}f| zFj)emx(Q1LCXfKBR{)agR!BaFOpqW4&OnAAZ1@UZ{DB$x%0TKBfMkRpa>B|xebfFQSm(-gIg3_xX*$2Yl@(mOQptK1s=RijpfaO4UtU&dElz=fP>_8aIp^yN%iDV=$RMH$5{qas{kayt)Nm5$-SsdP}qSmswjCp z65NDr0XV?W30x_Vp5X`0zsPRIV1vRAgfS$@5Fj)Bu;yS~36NS92&n!5g%7Bl1J$Nb zHmIBfVNiVws)Y%L0x0Z2n4m%;6p$Hyi191rM2I5+{-DxAaNW1a8ZL znV?*YbEOI*FhF4k!Uz%aSztGjqa8Wi;B4$Ekb_DY801!H+5>qX9EuPIC@{feEMPH0 z-ht^Mq>dPQkei56hoJ^*4#v?BplIE0AdKbD0zIc!w-87 z#-0GFQ~-k93T?~5+kddI5QMD#1NCW!RL!b1e!3TNy~D0uY;9 z$q5T`^k54BkQg>Mfy9ZyDB%XXqumfRaF>=`yxe0p!Vo8D2DF8ukg|_*?-iNY5Z9kCrL9G`M8(fD# z%Sq7eB}fhhgEWIMiXfRBkekTVidaq#%ezn-vk0V40SIb8gGZ~tAp~x(fa+Z^1`X>8 zf;Z2A#X%~-7&>2v;zdx{fiQ|7nH$2){{fZ|!3h8~<_tRR20R`JE&sq}B3KrQ0EIUQ zBMFhs1jQ-Ynn4<&WgZ%ZUIbF500f60+~Xhq|K~>wKhW+ikefglt`5XO#ULpVMinKG zM{)QOR|Ha}00g-eROfh7g&hc!ryErl$W5pseuxB!Jq1!+01o%?Lj)kK z%tN6mE&zvp_`!29_TynFEdYmo_#qlGSj#|43qVl#LFY9<^SYq!5x0cIT&2*AqWn#hwQ+iGBUyssS$%-3;)1!2@5!6h$Fz^N1Rf;ss?xZgP-vU zu8I+f55xkk_`&Nnypkg&{7{NO)H0Bw030#lhg<}r^h8)(D9OPiCj3wnAW{l+aiJst zM^5;m1|X>917j8!7Z(TeQ{V^+Ka?B{AB}MV0rCTI1ce`JBL-Rqf|DO81(LaLikjhv zx1uLOl3H%UuoB#QK@gzXI8fmS5g{)CspVGi8foOUsu+$ZUVvI|!mtrF2ZM?~1_lOD z{sq?|WVK^JZUx=>0Xx$GWG7O_FXt|05l!QEoalbWzwG4#R@l>GSlVaX4i0?Ek2pty#nKiD`Q zXxtARcA(%SCH%1MtHB=H_(ef(!mol{Sx89-Cc&xi!v{nHB(DwzyA>325Dan{hy~iS z1r9?J!Vfh557JLD2D^!3Q?MBT4ml73Nqis@mH^2MKCqubgAXqp!CO2LGXdY4;*xm006c9Ky&B+N$rY(v{NhJQOg`G@eXRcfG{`#^8W{y ze;t&}Ac5S99Dd*#Ur;}c#0(4yKae&oZYEg>eH8wtxfdR%lv74g;tV(auKJOSC2&3c+r|AxEh& zsPF?}NCN!ufx_Se*B_L+38WtsexUXbh)pS`NBBV!AU_9Xxfjyb1Nj%^cO(oRLxAl+ z2bYPU)iIy~5~LUl2G<{0#K{q&W%$7d@xcj@!om+U&Id|3pfNva0Dvh_=s_|ts4W9h z0TKaWoWTLo2OEFDsfb7knuZ@N0Ko~6(%cJAf1oe|x0ylV06NbYn$*DIhc-TlH59=5 zz@}i8CP|RC;Rg#q(DpaV>JE^nK;zHQ@IizhD5XKuAF=BIK|u$~{~$9d#WW5-NC5Kl zQ(pKX@-Je%R33U3J}5w-@}Tk$gh6A1xWWdi9G5gn;~3koCay1Y^Y`fHPhe!|NrGbegx%TNKYD+#6aN#%C8^{3MWve28R_W zfr5s5z=ELgg^cci#u2IICaMJz9)qamR%oUJB_VM7`ws~uL3uC(5>mGaQ+0zL26}4!u^K(ZhVS>OQD@^dCA4T3`N=X|IPNSJgC&c7gsfZ9h; z46+|~whbuVfvrWPIdFV|w2*EaP4h1}AA#Hp_7kMs0f!Bk4=xwwVQB!A{y^m)CY`;$X<{ckhlUh*umv5IQ@a-A?lFAPac#hAms>1jwB3C7bNMyrWoWf5QfS@ z!U>d5paM_|NeNU0Lj9Z%syiTTN=UH1I1B*EfiOrKOoJNju(SwegXBoUGzvdZ{6q3D zs%vnEAGr2FRZI>Kl-_aa1Id9fEX-hz0g1ubxb)%@r&ajjvTwMF(}pgae{P{s4XJqa?>AE;k~ zWDeB0K})@R_wF5490&3<2ty4UDd~@<;rE}6^atv7A;kkUItDHEPEe3G>F@vlpX8Q* z;QrL04KY-Q(JK5k6EF~3x1Rb4XGkyG!)6i#qF6BJ;O@B;OB!7NbN zLiKqQf`bag0#87Ll%ZfyxeJ=U z0!?Xw?FIQBqynl1EDmu8$c-RpfqM6#`UAuUW9S$o$ep0@gQ)|_fyD4)h+?>spP;b% zIUhW(3=hBg^Jjw6BuEixyam)n0m*^*Fbp#0zaVJZ7;PRIDG%XhLXP_Zji!LrfD#SF z`=BX7P+)*Chz$uGHC#W)TNJ9(&#RZ53G8f`TPzmu-9wq!>V`Sj|HD%{N z{{)2_9XqZ-B-f(C3jsa)dB6g@HT|OMf6QLomqW5Efeafw&Nz zAoIcD1iAqfG;|1>9|W;M(E??I)PTbePJmJu48z7~K`9f$hRJ~R;l&{HKp3hB9Da~7 zWpGOxlC|KKzW9_t1r zXmFkdi-Q9kYzZhmfc*sa9UcN?C1M(Xfg8~4|fD;H2FbhP$FjNh!`~w%5AbbCVS)edO#vp4!-h{Xl#Da-{Xaok$ z#v*t`us}wEFjOfx{9u_CGBX5~fl%n>9z+xzZ(t^J{R?tGSdah#4GECv;Y=t46j%@@ zm<3AV;N$@j1Ch}10~eW~><2zM9F(e1F~|wv7pKpTxI+R*C|kWTolL%7zSk{P#D25ESrGB z526MlgUc)oagZjc;GlCK$Za4DcOPgj99nZg%R!>U4^)DIDqv{Z1BDW(qC|uriES&W zn_&7uT(FbKjbB>04-|GF400SS$${KA6Wj=d%#DNE)KGa`6s&9p&1r*-1BD$3gVG|* z|DgRfATb!mWfq1w$UvwdJp2ZW`#^33VI=qcoCzxbK!FI!zyCpQh05ciKw$zY+dz#q zNSOx;Q;--u{6H-`P}&4xXuXNcJQVT4>^_j&Kp5&^Sos3xf+HKuB1nM450@&a`6Rck zVCF&fgSdmveIU1iFvxKr465H?Q{pqB=?^4M0E5#SE;XRe1h{Vr>fzy1ghzZZyAR|x z5XR&D0hb!g?gP0EgkgaMF8e?&zM233gVG^%C?7oL0#2JCL6~9$4a&dZGzc!+K#2`B z&Vi7ph&7nq2XY$-Lp=y8UqBe#bpr(z2*c`S@TdXyLJ=H(pbi@tg9qfGCQ^YK%X1bF8>4}qaY|MDBuic_kr97!cgyl(ib?aKzvZpfiS%M0|{cs;P3+HeUo%ih{xE4oQSY;Rj0p;P?d* zgTZ~EumfQvuMaxrV0ItKZ6FK{G+12$if5=0aTKKNgRF}Nu|c}P;~k*71lj=sr%^B; zG)M?iK^z{;?gP0EgrPnGWea#40V+le1u6d^VFNP`CI+HGW`M;(VGClAlD|RfK?XpJ zl|kh`klR2Q*?q7w5GqC-1r9q%3kEi}3{8LV@B@j1>;hp*!f!CS59AjRh6WO-%?C<@ zpn47}L>vW5SCAPRM165GqCt z1vUb?d;@6$@j>AVN_Q|mXxtC7&;TSt90nT>Q3{G%eC<$(Dohe=1js#L`=OBs;#2BA zkij4fwG!+;D4P@toVIXkK(YX)2I>VE7cY&ZebBiNuYl4&IIKYB9t?xqh2S{j&Y%Yc-FGy0g2{vGF+}uRI3*sO^`k_*w*aW!^ zga?KDKyCwJB=>=t(0NNRn+O6Neo%E_;~>QxLFnjiy76R3RvRzFzW2X$L06#&>@v>-mp z|EGfULTTYNNSO~!Euo?DAUnRse~tei3bO8N{8tbS!64E9|DkHY@?S&$e+B6X4gC*R z2hvOn42@%$-Gj<~;Cc}>E&}p6I5hr$jfaOzJjksG{Qp0Q4N(aSV-Wv8G69mJK8A%K zB(?^Z`>=&yXgnxAp@bbM?m?l82*3aT|A!(49Vm@bKja`LqKDsLavv!C1O)}Zg7YOP zg#Q2k3Jw=gNFgvNq`rni_#jV#Rf5!oevJnu3osufK@0p*9vq(_H-L;ERPF=CEvPL9 zau_HeK-m#g41&ruPznU4D<}r#Yfw4_DFuZWsLTV4fjHps2g%R?gWL!<7Gx19e&a#q zFt{uMxdB`jgWVen5(kyYV4r~GXzo6^+dvM4x-TA7cYye?7>BSSBuovY`~!oqa4bi0R?j-G>wD925Jq|HBcUif{M_~eK5CytRAd*FuM^{e?YnhgEjO}#t#Oa zBS*uJvM3o1Kgz=o-hQFXD4OXW^yMG&U=z(kfqa7pdH9jQa&kU0=OL>?sm#RbOx|Hc1{ z{}+%vNFA}5gzy8ohu&@@#d%;a!@>{bP*7Na`CtMn4Gtx6AcI){K`{!J2Jt|eKp3o) zID!-hg6;W_h*vNlOn~izxB$Wjv8mxU&^#m9aAFCF^a5@7eN{}HSQHUZC z3&V||Fb63k7Lyr%V7uwyHsrZ8qPzqO8W#`&N@5Ti8ki96E-v7F3du`f{L#Y?jKxvi8paUx-HT?VssoTJw zftD>WHZlzkI8aK2Ga#~{@(;oyk0detuv!9l5}W~1Mo+gvZ2bQPmVTg40p(M$6ex{> z7@)KVrlI8_$c-?yAaPPL3E?-G-G_8#} zLkYJ63fu>F6F3Y(EYREp2vgZ@6u1xKX^`7M^GS#}hKR(2!w=+Qh&nP!irfcr325FB z6pIiH5~HHqC~_Y-Z-D0#LE!|RBL;^Wk{dyJn9QI9X#<^g4Wh}y(6mQWw^0~=;5Y?^ z5!kJuwIASlSkN3SG$hILIb0JZ;YSy@Q5=3CSHiuE!T_a05JnLskpn*KpF}+{<@oFd z$$>CTEjcvEZ6x=9(Jca{J#;Y`A0!9DFg_VH$cCIFp9 zjfC+ThNO%vCdh0;8bNAc801ED^)NYXG`d<+`5-g#=>f^ZFvxA7HGs(HhJ#Kp1V)1BEx(ePClD;Rg}}-w_V>2$%;az~;jV zsG(51K{u!%#Xrcw5S2*sAcMd`4zdrF9|a+454_VK6v2?4{-C4>TaEr7r~5z|6l5S0 z2HOvcNRU6__JW)Nb`D4cBn!Tb03-^=AW)i*z=%c4#4RNl->S=3o?*8c;1D`gUrHyUk5}n$OYhN0~K7L z4DkOyC>enwN)U8A21p)c2H1U2c@Q6lL4_1ZtDqoA3&>8e$HA9{K*b@61Y{iygA4`v z0puU>R%TF~f`Sd#DzKs z%mkSPaS4coxew$j2u61sNIfXQz={fxDv%gBrGgZLIS2x537i0hAF^ZMQCVBm!~-sE7oqMHn*5A}0huX%7^xpmYb) z4+(cjdI7OP#T!T*qy~&ZF$FGGAVmsD4G4p(JdirDIY{zgJs>_rIjF=370;lI0WOX} zdO;XmCW4D9h!k8OR4<4RvKmCoy?ggi@ZCF*b)XUkR1^w=#Xxp|%@8EW2kV!6C@A+( z?jcMsoGtedY&J0jDEvTv24S#zkR!p>0LU>Qr$LG?kUR*3JP)Qp!cetvF|Zb}EGRfY z`2t+DKt({xKp9>TRG)%4U~y1J09ga7dqL)b>tm2skSqj)+y!HSXhEpILE<2Dz%EegfndkefgltP*4&2*bh$>OfH42l5q24VVp* z2XjDW7pPQ#rdd#17?cK}@(^=D27+|Mnq;7cGpKNbL=;FCoCZN$P`L;)@;_)}CIll} z12zxrKQI9@6eLYByg*?ERtT~T7QEnicn6oFYWRWd0bx*BfYKF+2HnO3^&>b~LGmyR z7663_DF1={4M|v_W&!AA6Oh~CaRq84z{~-qH&FWu6r>a2CjP`H$f6 zgAgEvAZhZ$4^;j^i#xK?-+xe|f;a(8g1iL6AkTny+{42U>UMBwfP4(Xpi5CeK?x2X zuy&9tFas2RAO<)ZAZkJFIFJwwgVaJW$WTxl0i1C`Hp9zJkUU5|h=yUocaU-)Bo43N z-a!Ka>~=vxkQ#jQps)f(0f>erH#i$605$+W0jfVxRDiq+!XQBq4N6NOHi!mcC>xfq zpq>SZf-xc;Ljw>LJy3lZc7en}=?zpiAlDxtK2#2zEofWG2WMSbYpKmJkL23&gU3 diff --git a/SparrowOS/Accts/TS/Wb2/Tanks.BMP b/SparrowOS/Accts/TS/Wb2/Tanks.BMP deleted file mode 100644 index de80b44b9d96df7b1ccdd95cba5f6b0041284e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153718 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,4$TSInstall;$FG$ or >$FG,4$TSUpdate;$FG$ at the command-line. -7b) See $FG,4$MakeBackUp$FG$ to reproduce the ISO's in $FG,4$F:/Wb$FG$. It makes this website, too. - -A troll might ask, "Why not just use $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$? It was ring-0-only and single-address-map." Actually, they wouldn't because many people would say, "Cool idea! I'm gonna dust-off $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ right now and have some fun!" $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ is 16-bit with segmentation, though, which is awful. SparrowOS is 64-bit, non-segmented and multi-cored. It's like a modern, souped-up, multi-tasking, cross between $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ and a Commodore 64. It has a C64-like shell with a $LK,"dialect","FI:::/SparrowOS/Doc/Differences.TXT.Z"$ of C/C++ instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned character source code to support European languages, and source code has graphics. - -A troll might say, "But, it can crash!" Don't give me that. We all used $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ for years and loved it. Computers even had a reset switch! Just think of the power of ring 0, muhahahaha! Think of the speed and simplicity of $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX+HTML,"identity-mapping","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. It's only $LK+D,"137,850","FF:::/SparrowOS/Accts/TS/Wb2/LineCnt.TXT.Z,OSMain.PRJ.Z","DD_SPARROWOS_LOC"$ lines of code, including the compiler and can swap tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory. - -It's fun having access to everything. When I was a teenager, I had a book, $FG,4$$TX+HTML,"Mapping the Commodore 64","http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports. SparrowOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are always accessible. Memory is $FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$ at all the times, so you can easily modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files. Maybe, you want to play with a raw-block database, or make your own file system? - -I wrote all $LK+D,"137,850","FF:::/SparrowOS/Accts/TS/Wb2/LineCnt.TXT.Z,OSMain.PRJ.Z","DD_SPARROWOS_LOC"$ lines of SparrowOS over the last $TX+D,"9.3","DD_SPARROWOS_AGE"$ years, full-time. It was called at various times, "$FG,4$$TX+HTML,"Hoppy","http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX+HTML,"The J Operating System","http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$" and "$FG,4$$TX+HTML,"LoseThos","http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$". Here are my $FG,4$$TX+HTML,"college transcripts","http://www.sparrowos.com/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. - -$HI,"http://www.sparrowos.com/Wb/Accts/TS/Wb2/SparrowOS.BMP"$ - -$FG,4$$TX+CX+HTML,"Download SparrowOS V1.02 (24.0 MB)","http://www.sparrowos.com/SparrowOSCD.ISO"$$FG$ - -Burn a CD/DVD from the SparrowOSCD.ISO and boot it or -run it in $FG,4$$TX+HTML,"VMWare","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ or $FG,4$$TX+HTML,"VirtualBox","http://www.virtualbox.org"$$FG$ aiming the CD/DVD drive at SparrowOSCD.ISO or -for QEMU type: ->qemu-system-x86_64 -m 500 -cdrom SparrowOSCD.ISO -boot d - -$FG,4$$TX+CX+HTML,"Download SimStructure (7.80 MB)","http://www.sparrowos.com/files/SimStrSetUp.ZIP"$$FG$ - -$TX+CX,"Product Key: L00-W10-M70"$ - -$LK,"Screen Shots","FI:::/SparrowOS/Accts/TS/Wb2/ScreenShots.TXT.Z"$ - -$LK,"Introduction","FI:::/SparrowOS/Doc/Welcome.TXT.Z"$ - -$LK,"F.A.Q.","FI:::/SparrowOS/Doc/Mysteries.TXT.Z"$ - -$LK,"SparrowOS Help","FI:::/SparrowOS/Doc/HelpIndex.TXT.Z"$ - -$LK,"Source Code By File","FF:::/SparrowOS/Accts/TS/Wb2/LineCnt.TXT.Z,OSMain.PRJ.Z"$ - -$FG,4$$TX+HTML,"Source Code By Symbol","http://www.sparrowos.com/Wb/Accts/TS/Wb2/SymbolsAlpha.html"$$FG$ - -$FG,4$$TX+HTML,"Source Code By Address","http://www.sparrowos.com/Wb/Accts/TS/Wb2/SymbolsAddress.html"$$FG$ - -$FG,4$$TX+HTML,"Source Code (Raw)","http://www.sparrowos.com/Wb/"$$FG$ - -$LK,"Hymn Videos","FI:::/SparrowOS/Accts/TS/Wb2/Hymns.TXT.Z"$ - -$LK,"Change Log","FI:::/SparrowOS/Doc/ChangeLog.TXT.Z"$ - -$FG,4$$TX+HTML,"SparrowOS Community","http://www.reddit.com/r/SparrowOS"$$FG$ - -$LK,"About Trivial Solutions","FI:D:/SparrowOS/Doc/TrivialSolutions.TXT.Z"$ - -$FG,8$ -* "Commodore 64" was a trademark of Commodore Business Machines. -* "Linux" is probably a trademark owned by Linus Torvalds. -* "VMWare" is a trademark of VMWare, Inc. -* "VirtualBox" is a trademark of Oracle. -* "DOS" is a trademark of MicroSoft Corp. -* "WinImage" is a trademark of Gilles Vollant. diff --git a/SparrowOS/Adam/Gr/GrChar.CPP b/SparrowOS/Adam/Gr/GrChar.CPP deleted file mode 100644 index 02f461b..0000000 --- a/SparrowOS/Adam/Gr/GrChar.CPP +++ /dev/null @@ -1,106 +0,0 @@ -#help_index "Graphics/Char;Char/Graphics" -public U0 PlotScreenStr(U8 *s,I64 attr,I64 x,I64 y) -{ - U8 ch; - attr<<=8; - while (ch=*s++) { - PlotScreenU8(ch+attr,x,y); - x++; - } -} - -public U0 PlotWinStr(CTask *task,U8 *s,I64 attr,I64 x,I64 y) -{ - U8 ch; - attr<<=8; - while (ch=*s++) { - PlotWinU8(task,ch+attr,x,y); - x++; - } -} - -public U0 PlotBorderStr(CTask *task,U8 *s,I64 attr,I64 x,I64 y) -{ - U8 ch; - attr<<=8; - while (ch=*s++) { - PlotBorderU8(task,ch+attr,x,y); - x++; - } -} - -public U0 DrawBorder(CTask *task,Bool solid,I64 l,I64 r,I64 t,I64 b,I64 attr,Bool clip_to_win) -{ - I64 i; - attr<<=8; - if (clip_to_win) { - if (solid) { - PlotWinU8(task,CH_DBL_TL+attr,l-1,t-1); - PlotWinU8(task,CH_DBL_TR+attr,r+1,t-1); - PlotWinU8(task,CH_DBL_BL+attr,l-1,b+1); - PlotWinU8(task,CH_DBL_BR+attr,r+1,b+1); - for (i=l;i<=r;i++) { - PlotWinU8(task,CH_DBL_HORZ+attr,i,t-1); - PlotWinU8(task,CH_DBL_HORZ+attr,i,b+1); - } - for (i=t;i<=b;i++) { - PlotWinU8(task,CH_DBL_VERT+attr,l-1,i); - PlotWinU8(task,CH_DBL_VERT+attr,r+1,i); - } - } else { - PlotWinU8(task,CH_SINGLE_TL+attr,l-1,t-1); - PlotWinU8(task,CH_SINGLE_TR+attr,r+1,t-1); - PlotWinU8(task,CH_SINGLE_BL+attr,l-1,b+1); - PlotWinU8(task,CH_SINGLE_BR+attr,r+1,b+1); - for (i=l;i<=r;i++) { - PlotWinU8(task,CH_SINGLE_HORZ+attr,i,t-1); - PlotWinU8(task,CH_SINGLE_HORZ+attr,i,b+1); - } - for (i=t;i<=b;i++) { - PlotWinU8(task,CH_SINGLE_VERT+attr,l-1,i); - PlotWinU8(task,CH_SINGLE_VERT+attr,r+1,i); - } - } - } else { - if (solid) { - PlotScreenU8(CH_DBL_TL+attr,l-1,t-1); - PlotScreenU8(CH_DBL_TR+attr,r+1,t-1); - PlotScreenU8(CH_DBL_BL+attr,l-1,b+1); - PlotScreenU8(CH_DBL_BR+attr,r+1,b+1); - for (i=l;i<=r;i++) { - PlotScreenU8(CH_DBL_HORZ+attr,i,t-1); - PlotScreenU8(CH_DBL_HORZ+attr,i,b+1); - } - for (i=t;i<=b;i++) { - PlotScreenU8(CH_DBL_VERT+attr,l-1,i); - PlotScreenU8(CH_DBL_VERT+attr,r+1,i); - } - } else { - PlotScreenU8(CH_SINGLE_TL+attr,l-1,t-1); - PlotScreenU8(CH_SINGLE_TR+attr,r+1,t-1); - PlotScreenU8(CH_SINGLE_BL+attr,l-1,b+1); - PlotScreenU8(CH_SINGLE_BR+attr,r+1,b+1); - for (i=l;i<=r;i++) { - PlotScreenU8(CH_SINGLE_HORZ+attr,i,t-1); - PlotScreenU8(CH_SINGLE_HORZ+attr,i,b+1); - } - for (i=t;i<=b;i++) { - PlotScreenU8(CH_SINGLE_VERT+attr,l-1,i); - PlotScreenU8(CH_SINGLE_VERT+attr,r+1,i); - } - } - } -} - -U0 DrawTaskBorder(CTask *task) -{ - PushFD; - Cli; - DrawBorder(task,task==sys_focus_task, - task->win_left,task->win_right, - task->win_top,task->win_bottom, - task->border_attr,FALSE); - PopFD; -} - -#help_index "Graphics" diff --git a/SparrowOS/Adam/Merge.CPP b/SparrowOS/Adam/Merge.CPP deleted file mode 100644 index 6cf167f..0000000 --- a/SparrowOS/Adam/Merge.CPP +++ /dev/null @@ -1,88 +0,0 @@ -#help_index "Utils;Cmd Line (Typically)" - -CDirEntry MCMatchFind(CDirEntry *pattern,CDirEntry *list) -{ - while (list) { - if (!StrCmp(pattern->name,list->name)) - return list; - list=list->next; - } - return NULL; -} - -U0 MergeChkList(CDirEntry *m1,CDirEntry *m2,I64 *_fuf_flags,I64 *df_flags) -{ - I64 i; - CDirEntry *tempm2; - while (m1 && !(*df_flags & DF_ABORT_ALL_FILES)) { - tempm2=MCMatchFind(m1,m2); - if (!tempm2) - "$$FG,BROWN$$Does Not Exist:%s$$FG$$\n",m1->full_name; - else { - if (m1->attr & _ATTR_DIR) - MergeChkList(m1->sub,tempm2->sub,_fuf_flags,df_flags); - else { - i=m1->datetime-tempm2->datetime; - if (AbsI64(i)>CDATE_FREQ*2) { //Filedates can shift due to conversion - "" m1->full_name; - NewLine; - if (Bt(_fuf_flags,FUf_DIFF)) { - if (IsTextFile(m1->full_name)) - *df_flags=Diff(tempm2->full_name,m1->full_name,*df_flags); - } - } - } - } - m1=m1->next; - } -} - -public U0 MergeChk( - U8 *dst_files_find_mask="/SparrowOS/*", - U8 *src_files_find_mask="/SparrowOS/*", - U8 *fu_flags=NULL) -//"+d"=Do $LK,"Diff","MN:Diff"$() on files -{ - I64 df_flags=0,fuf_flags=0; - CDirEntry *tempm1=NULL,*tempm2=NULL; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - PrintFWarn("This is based strictly on file dates.\n"); - tempm1=FilesFind(src_files_find_mask,fuf_flags); - tempm2=FilesFind(dst_files_find_mask,fuf_flags); - MergeChkList(tempm1,tempm2,&fuf_flags,&df_flags); - CDirListDel(tempm1); - CDirListDel(tempm2); -} - -#help_index "Utils;Cmd Line (Typically)" - -U0 ListNewFilesList(CDirEntry *tempm,CDate ltdt) -{ - while (tempm) { - if (tempm->datetime>ltdt) { - "" tempm->full_name; - NewLine; - } - ListNewFilesList(tempm->sub,ltdt); - tempm=tempm->next; - } -} - -public U0 ListNewFiles(U8 *files_find_mask="/SparrowOS/*",CDate ltdt=0, - U8 *fu_flags=NULL) -//"+t"=is just text files -{ - I64 fuf_flags=0; - CDirEntry *tempm1=NULL; - if (!ltdt) - ltdt=sys_compile_time; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+t"); - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - if (tempm1=FilesFind(files_find_mask,fuf_flags)) { - ListNewFilesList(tempm1,ltdt); - CDirListDel(tempm1); - } -} - -#help_index "" diff --git a/SparrowOS/Apps/AfterEgypt/AENotes.TXT b/SparrowOS/Apps/AfterEgypt/AENotes.TXT deleted file mode 100644 index 1021b68..0000000 --- a/SparrowOS/Apps/AfterEgypt/AENotes.TXT +++ /dev/null @@ -1,7 +0,0 @@ -$FG,5$After Egypt Help$FG$ ----------------- - - $LK,"Part 1","FI:::/SparrowOS/Apps/HolySpirit/HSNotes.TXT.Z"$ - - $LK,"Part 2","FI:::/SparrowOS/Apps/AfterEgypt/AENotesPart2.TXT.Z"$ - diff --git a/SparrowOS/Apps/AfterEgypt/Load.CPP b/SparrowOS/Apps/AfterEgypt/Load.CPP deleted file mode 100644 index 7580789..0000000 --- a/SparrowOS/Apps/AfterEgypt/Load.CPP +++ /dev/null @@ -1,16 +0,0 @@ -#help_index "Games" - -Cd("/SparrowOS/Apps/AfterEgypt");; -#include "/SparrowOS/Apps/HolySpirit/HolySpirit.CPP.Z" -#include "Comics.CPP.Z" -#include "/SparrowOS/Demo/Graphics/Camp.CPP.Z" -#include "/SparrowOS/Demo/MultiCore/Clouds.CPP.Z" -#include "/SparrowOS/Demo/Graphics/Mountain.CPP.Z" -#include "Map.CPP.Z" -#include "Battle.CPP.Z" -#include "WaterRock.CPP.Z" -#include "Quail.CPP.Z" -#include "Horeb.CPP.Z" -#include "AfterEgypt.CPP.Z" - -#help_index "" diff --git a/SparrowOS/Apps/AfterEgypt/Run.CPP b/SparrowOS/Apps/AfterEgypt/Run.CPP deleted file mode 100644 index 07cfb66..0000000 --- a/SparrowOS/Apps/AfterEgypt/Run.CPP +++ /dev/null @@ -1,3 +0,0 @@ -Cd("/SparrowOS/Apps/AfterEgypt");; -#include "Load" -AfterEgypt; diff --git a/SparrowOS/Apps/GrModels/Load.CPP b/SparrowOS/Apps/GrModels/Load.CPP deleted file mode 100644 index 4e9b985..0000000 --- a/SparrowOS/Apps/GrModels/Load.CPP +++ /dev/null @@ -1,3 +0,0 @@ -#include "/SparrowOS/Apps/GrModels/ManGen.CPP.Z" -#include "/SparrowOS/Apps/GrModels/BallGen.CPP.Z" -#include "/SparrowOS/Apps/GrModels/Models.CPP.Z" diff --git a/SparrowOS/Apps/GrModels/Run.CPP b/SparrowOS/Apps/GrModels/Run.CPP deleted file mode 100644 index 2baa7ef..0000000 --- a/SparrowOS/Apps/GrModels/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/GrModels/Load" -Models; \ No newline at end of file diff --git a/SparrowOS/Apps/KeepAway/Load.CPP b/SparrowOS/Apps/KeepAway/Load.CPP deleted file mode 100644 index 423e96c..0000000 --- a/SparrowOS/Apps/KeepAway/Load.CPP +++ /dev/null @@ -1 +0,0 @@ -#include "/SparrowOS/Apps/KeepAway/KeepAway.CPP.Z" diff --git a/SparrowOS/Apps/KeepAway/Run.CPP b/SparrowOS/Apps/KeepAway/Run.CPP deleted file mode 100644 index 78ba0dc..0000000 --- a/SparrowOS/Apps/KeepAway/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/KeepAway/Load" -KeepAway; \ No newline at end of file diff --git a/SparrowOS/Apps/Logic/Load.CPP b/SparrowOS/Apps/Logic/Load.CPP deleted file mode 100644 index 9deccf1..0000000 --- a/SparrowOS/Apps/Logic/Load.CPP +++ /dev/null @@ -1 +0,0 @@ -#include "/SparrowOS/Apps/Logic/Logic.CPP.Z" diff --git a/SparrowOS/Apps/Logic/Run.CPP b/SparrowOS/Apps/Logic/Run.CPP deleted file mode 100644 index cfb2c9e..0000000 --- a/SparrowOS/Apps/Logic/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/Logic/Load" -DigitalLogic; \ No newline at end of file diff --git a/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP b/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP deleted file mode 100644 index 0be6455..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/feigned.CPP +++ /dev/null @@ -1,20 +0,0 @@ -//7 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.857; - try { - while (!ScanKey) { - Play("W13eEDEFqDDeEDEDqCC"); - Play("eD2G3BCqDsGGGGeD2G3BCqDsGGGG"); - Play("qF!FFetREA!qG!sG!FG!!F!GEGEqC"); - Play("F!FFetREA!qG!sG!FG!!F!GEGEqC"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/free.CPP b/SparrowOS/Apps/MusicOrgan/Examples/free.CPP deleted file mode 100644 index 0f6ed66..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/free.CPP +++ /dev/null @@ -1,34 +0,0 @@ -//8 has words -U0 Song() -{ - CTask *task; - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.902; - try { - task=PopUpViewStr( - "$LK,"Romans,8:28","BF:Romans,8:28"$\n" - ); - TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); - while (!ScanKey) { - Play("W13qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G", - "Free \0will... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0fail.\n\0 \0 \0 \0"); - Play("3qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G", - "God \0still... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0hail.\n\0 \0 \0 \0"); - Play("3qD2G3eA2G3qCetEC!AqBsA!!C!ACqA", - "All \0things \0work \0for \0good... \0to \0the \0Lord.\n\0 \0 \0 \0 \0 \0 \0"); - Play("D2G3eA2G3qCetEC!AqBsA!!C!ACqA", - "It's \0all \0good... \0 \0 \0as\0 \0sured.\n\0 \0 \0 \0 \0 \0 \0"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP b/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP deleted file mode 100644 index 3e4c82c..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/inwardly.CPP +++ /dev/null @@ -1,20 +0,0 @@ -//7 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.902; - try { - while (!ScanKey) { - Play("W12q.GeG3qB2GG3A2GeFF"); - Play("q.GeG3qB2GG3A2GeFF"); - Play("3CD!qGB!AF!C!FeDB"); - Play("CD!qGB!AF!C!FeDB"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP b/SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP deleted file mode 100644 index 31f97d6..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/keeping.CPP +++ /dev/null @@ -1,22 +0,0 @@ -//8 has words -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.151; - music_stacatto_factor= 0.780; - try { - while (!ScanKey) { - Play("W13eCsBBeA#BCDCBCsBBeA#BCDCB"); - Play("etDCBeCBCBABetDCBeCBCBAB"); - Play("!A2G!3sBG!B!GFC!FCBFBFetF!GAsFGF!G!qG!D", - "I \0have \0kept \0 \0the \0 \0Lord's \0 \0day, \0 \0 \0 \0 \0 \0 \0 \0 \0all \0 \0 \0 \0day!\n\0 \0"); - Play("!eA2G!3sBG!B!GFC!FCBFBFetF!GAsFGF!G!qG!D", - "O\0kay, \0 \0God... \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0where's \0 \0 \0is \0 \0my \0 \0pay?\n\0 \0"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP b/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP deleted file mode 100644 index 05426f7..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/psalm.CPP +++ /dev/null @@ -1,21 +0,0 @@ -//8 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 3.360; - music_stacatto_factor= 0.846; - try { - while (!ScanKey) { - Play("M5/4"); - Play("W12qGGG3qtCBA2qGGG3qtCetBBqtA"); - Play("qEeCCqDqtCBAM4/4"); - Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE"); - Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP b/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP deleted file mode 100644 index f54fc5d..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/restless.CPP +++ /dev/null @@ -1,19 +0,0 @@ -//9 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 1.710; - music_stacatto_factor= 0.736; - try { - while (!ScanKey) { - Play("W13sDDDACCADDACCAe.DsCCC2G3FD2G3FD2G3CCAe.D"); - Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE"); - Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/signifies.CPP b/SparrowOS/Apps/MusicOrgan/Examples/signifies.CPP deleted file mode 100644 index 4e38407..0000000 --- a/SparrowOS/Apps/MusicOrgan/Examples/signifies.CPP +++ /dev/null @@ -1,20 +0,0 @@ -//8 no nothing -U0 Song() -{ - Fs->task_end_cb=&SndTaskEndCB; - MusicSettingsRst; - music_tempo= 2.480; - music_stacatto_factor= 0.902; - try { - while (!ScanKey) { - Play("W13hDeDA2qG3hDeD2GqF"); - Play("3hDeD2sFG3qAhDeDA2qG"); - Play("3eC!!EsACACeD2G3qA!AFeE2G!3etFCC"); - Play("eC!!EsACACeD2G3qA!AFeE2G!3etFCC"); - } - } catch - CatchAll; - Snd(0); -} - -Song; diff --git a/SparrowOS/Apps/MusicOrgan/Load.CPP b/SparrowOS/Apps/MusicOrgan/Load.CPP deleted file mode 100644 index 428f80e..0000000 --- a/SparrowOS/Apps/MusicOrgan/Load.CPP +++ /dev/null @@ -1,7 +0,0 @@ -#help_index "Snd" -#include "/SparrowOS/Apps/HolySpirit/HolySpirit.CPP.Z" -#include "/SparrowOS/Apps/MusicOrgan/MakeSong.CPP.Z" -#include "/SparrowOS/Apps/MusicOrgan/JukeBox.CPP.Z" -#include "/SparrowOS/Apps/MusicOrgan/OrganCtrls.CPP.Z" -#include "/SparrowOS/Apps/MusicOrgan/Organ.CPP.Z" -#help_index "" diff --git a/SparrowOS/Apps/MusicOrgan/Run.CPP b/SparrowOS/Apps/MusicOrgan/Run.CPP deleted file mode 100644 index 56f5e94..0000000 --- a/SparrowOS/Apps/MusicOrgan/Run.CPP +++ /dev/null @@ -1,3 +0,0 @@ -#include "/SparrowOS/Apps/MusicOrgan/Load" -MusicOrgan; - diff --git a/SparrowOS/Apps/Pilgrims/Load.CPP b/SparrowOS/Apps/Pilgrims/Load.CPP deleted file mode 100644 index 2d15394..0000000 --- a/SparrowOS/Apps/Pilgrims/Load.CPP +++ /dev/null @@ -1,7 +0,0 @@ -#help_index "Games" - -Cd("/SparrowOS/Apps/Pilgrims");; - -#include "Pilgrims.CPP.Z" - -#help_index "" diff --git a/SparrowOS/Apps/Pilgrims/Run.CPP b/SparrowOS/Apps/Pilgrims/Run.CPP deleted file mode 100644 index 3b77114..0000000 --- a/SparrowOS/Apps/Pilgrims/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/Pilgrims/Load" -Pilgrims; diff --git a/SparrowOS/Apps/Span/Load.CPP b/SparrowOS/Apps/Span/Load.CPP deleted file mode 100644 index f56b419..0000000 --- a/SparrowOS/Apps/Span/Load.CPP +++ /dev/null @@ -1,10 +0,0 @@ -#help_index "Games" - -Cd("/SparrowOS/Apps/Span");; -#include "Span.HPP.Z" -#include "SpanDerive.CPP.Z" -#include "SpanBridge1.CPP.Z" -#include "SpanNew.CPP.Z" -#include "SpanMain.CPP.Z" - -#help_index "" diff --git a/SparrowOS/Apps/Span/Run.CPP b/SparrowOS/Apps/Span/Run.CPP deleted file mode 100644 index 3d9cf96..0000000 --- a/SparrowOS/Apps/Span/Run.CPP +++ /dev/null @@ -1,3 +0,0 @@ -Cd("/SparrowOS/Apps/Span");; -#include "Load" -Span; diff --git a/SparrowOS/Apps/Tanks/Load.CPP b/SparrowOS/Apps/Tanks/Load.CPP deleted file mode 100644 index 2d27493..0000000 --- a/SparrowOS/Apps/Tanks/Load.CPP +++ /dev/null @@ -1 +0,0 @@ -#include "/SparrowOS/Apps/Tanks/Tanks.CPP.Z" diff --git a/SparrowOS/Apps/Tanks/Run.CPP b/SparrowOS/Apps/Tanks/Run.CPP deleted file mode 100644 index d8d982d..0000000 --- a/SparrowOS/Apps/Tanks/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/Tanks/Load" -Tanks; \ No newline at end of file diff --git a/SparrowOS/Apps/TimeClock/Load.CPP b/SparrowOS/Apps/TimeClock/Load.CPP deleted file mode 100644 index c27f1d9..0000000 --- a/SparrowOS/Apps/TimeClock/Load.CPP +++ /dev/null @@ -1 +0,0 @@ -#include "/SparrowOS/Apps/TimeClock/TimeClk.CPP.Z" diff --git a/SparrowOS/Apps/Timeout/Load.CPP b/SparrowOS/Apps/Timeout/Load.CPP deleted file mode 100644 index 65c095a..0000000 --- a/SparrowOS/Apps/Timeout/Load.CPP +++ /dev/null @@ -1,5 +0,0 @@ -#help_index "Games" - -#include "/SparrowOS/Apps/Timeout/Timeout.CPP.Z" - -#help_index "" diff --git a/SparrowOS/Apps/Timeout/Run.CPP b/SparrowOS/Apps/Timeout/Run.CPP deleted file mode 100644 index 86490ea..0000000 --- a/SparrowOS/Apps/Timeout/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/Timeout/Load" -Timeout; \ No newline at end of file diff --git a/SparrowOS/Apps/Vocabulary/Load.CPP b/SparrowOS/Apps/Vocabulary/Load.CPP deleted file mode 100644 index 395de63..0000000 --- a/SparrowOS/Apps/Vocabulary/Load.CPP +++ /dev/null @@ -1,5 +0,0 @@ -#help_index "Games" - -#include "/SparrowOS/Apps/Vocabulary/VocabQuiz.CPP.Z" - -#help_index "" diff --git a/SparrowOS/Apps/Vocabulary/Run.CPP b/SparrowOS/Apps/Vocabulary/Run.CPP deleted file mode 100644 index 0afc677..0000000 --- a/SparrowOS/Apps/Vocabulary/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/Vocabulary/Load" -VocabQuiz; \ No newline at end of file diff --git a/SparrowOS/Apps/X-Caliber/Load.CPP b/SparrowOS/Apps/X-Caliber/Load.CPP deleted file mode 100644 index 009c86e..0000000 --- a/SparrowOS/Apps/X-Caliber/Load.CPP +++ /dev/null @@ -1,8 +0,0 @@ -#help_index "Games" - -Cd("/SparrowOS/Apps/X-Caliber");; - -#include "XCCtrls.CPP.Z" -#include "X-Caliber.CPP.Z" - -#help_index "" diff --git a/SparrowOS/Apps/X-Caliber/Run.CPP b/SparrowOS/Apps/X-Caliber/Run.CPP deleted file mode 100644 index cac5a91..0000000 --- a/SparrowOS/Apps/X-Caliber/Run.CPP +++ /dev/null @@ -1,2 +0,0 @@ -#include "/SparrowOS/Apps/X-Caliber/Load" -XCaliber; \ No newline at end of file diff --git a/SparrowOS/Compiler/Compiler.BIN b/SparrowOS/Compiler/Compiler.BIN deleted file mode 100644 index 9b5f473c201c0effe424e53da3046381204f677b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266262 zcmaFO$G{LUicyxzKcyv1ncyu~}Xbz7~CjpOc zCXY@h4v$VQkM3U{-3QZ}Ett!gJXU*jJ8>Yf1(4VhaQ5*7ARl`)A5wS?(qjFq=x6-N zLjnvW+gJqB4z&@=2HOZ_gKY$}sb?d|cPu5y_9BZwY)2M>xB(%8%Oz1v3=Anu3=DZp z3=F+Y3=FH87#L16F)%!5VqjoqU=U|!U{GLYU@%9*_RI_np3Dpk!ORQ{vCIq%>C6la zh0F{L?aT}evzZwf0&c#z!=iFmMkNBo(gCxA0zA6!+-1J&%yIL_{Re3)8CXic-Icz3 z;O6%TkLDvBK>>GJRPMT{aNPgs0dwgE29UHz^AUld0FcyO78N3785tNDJeqGH>qRmd zUDl)fLYIWc{{vjNOTT+)AM*Hrg5S{N;3EYO=0hIb2TFu0I6aOZ0BL&7?s5FU|NsC0 z@A$xQ;h#r01IWQQPJlgmmqq2~LpbXfob?aR`VVJ)f_whJ&F^s07dJn{#bs0?-ZL{W z{A6ZeU}hl>bF(lofUqbF1A_t!1A`_D1A{RO1A{FK14A$i14B9sJW@p9kpg1fWl;fz zKEy9D*3E}-)-O2gADs0c&O-4ETolPKAhF#n3=GFv7#J=?@mCfG20jJ`bp{4cBoxTN z0720V45%cB|0ehFfO+zn3>CEU=cLW+G3 z6crxL@Fazh07WiV9Uuv?nUFFAp%vr;knJEEk^(?1ND2V6z$pOC0;d2l3!DPLER;}# znR62<)Ieg4Yzz#%Yzz#NBw}ec1_oI+1_lK-1_nho1_os|1_nbm1_oO;q)-%5i2%Fg z#l4qzMN}egoVfY$=C7OoZvMZC;x=SAO=M$WK*p=s7#Pm5F)+MiV_;xsCl3>j8&JrD zqW}~aq(u_kaCEI8Gewp~O#<^wJr5-;08)j_wJhvmQ0 zYp>Zoy8Q(_HBWhTmveYD)=4lhF)-BVz?^yO8^oC~$90Eucyvp7bQ*bd%6W8#ad>nV zb9iaQ02Zw`mK!9Ep13Wl9x@#qTx^|~x9U}vS=l{d6FL`z! z_tZXyEH#;tfdOK!D8vAdgD;qUjW0QFV)s$L@Y;ueTQ~>AHn6-L6GZ;4<5qSb``gDqR{s!6dKZ^mBrw=}04tSye`Tu{9 z&Wzvx|HDjhMl!+Bqu0&Aqx*-i@of+OZEhN#mWPXFL5c4FagT!!m_3;FK+fs3@Mu0R z07{TI!8Yyi*df6M@&f}yfM<}$e^ZX%|Np-@{OSLHa7aM1?O})lh7%PGVc{sb<+y7D zNY3MUYsG(9ShOa9nu`BHes7IHFfE`=$F2W;`S-o`INquO6WI(Bx$SYhRRUp%0D{Q@ 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

    }mi$dc6m9 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\O^O^O^O^O^O^O^O^O^OjOrOzO€O€O—OŸO£O«O¹O¿O¿O¿OÓOÙOåOëOøOPP#P/P7PDPVPdP€P‡P“P¬P¯P´P7R›MÞ =À¬À¬Ð¬×¬Þ¬â¬­­!­2­C­N­e­p­r­}­Ž­™­°­»­½­Ä­Í­Ï­Ú­á­ë­® -*= (à"€³€³”³›³¢³ª³­³­³¼³Å³È³Ë³Ï³Ô³ô³á³ ´´´´)´6´A´I´c´�´ƒ´¥´¯´Ý´Ð´ò´ò´µµ#µ.µDµZµaµwµ�µ£µ¹µ¹µ¹µ¹µÂµËµÑµÔµåµåµÿµ¶¶#¶©¶ Là" ¸Y­PÂPÂfÂmÂxŽ ²ÂÄÂÖÂèÂõÂõÂúÂÃÃÃ)Ã.Ã@ÃOÃ^ÃmÃ|ÉÉÉééÿÃÑÃÕÃÕÃãÃòÃ÷Ã÷ÃþÃþÃÄ%Ä'Ä'Ä=ÄUÄUÄUÄkÄvÄvČģIJÄÌÄÛÄøÄÅ$Å3ÅPÅ_Å}ÅŒÅ�şŵżÅÒÅÒÅÒÅñÅñÅÆÆ+Æ+Æ­Æ^Y­¨MpCpC€C€C�C�C»C¿CÄCÄCÄCÄCÐCÕCåCêCêCêCïCïCD D D-D6DFDODQDQDQDQDXD_DfDmDtD{D‚D‰D�D�D’D’D˜D�DÍK<M ¹ÊH²H²\²c²n²x²ƒ²‹²š²¤²§²©²¹²¹²Å²¹ÊPZ�¯¯¯!¯(¯6¯=¯B¯O¯a¯c¯j¯p¯€¯‹¯•¯ ¯ ¯·¯º¯¼¯Î¯Ô¯ä¯î¯ø¯ÿ¯ -° °'°'°=°=°Q°1Z�P�¨X°X°j°q°x°†°�°’°Ÿ°±°³°º°À°Ð°Û°å°ð°ð°± -± ±±%±5±?±I±P±[±o±w±w±�±�±¢±1�¨=Z®®®$®+®2®8®H®S®]®h®h®®‚®„®Ÿ®©®³®º®Å®×®ß®ß®õ®õ®¯'=Z ¨¹¨±¨±Ã±Ê±Õ±ß±ê±ò±² ²²"²&²:²:²H²¨¹`­6°Æ°ÆÑÆØÆØÆñÆýÆÇÇÇ?ÇAÇJÇxÇzǕǣǣǬdzǿÇÉÇÐÇ×ÇÛÇÝÇäÇðÇúÇÈÈ È ÈÈ)È)È2È`ÈbÈkșȼÈÊÈÓÈÚÈæÈðÈ÷ÈþÈÉÉ ÉÉ!É(É/É3É3É@ÉNÉqɘɦɭɸɸÉÁÉïÉñÉúÉ(Ê1Ê8ÊDÊNÊUÊ\Ê`ÊbÊiÊuÊʆÊ�Ê‘Ê‘ÊœÊ¿ÊæÊôÊûÊËËË=Ë?ËHËvËˊ˖ˠ˧ˮ˲˴˻ËÇËÑËØËßËãËãËíËÌ#Ì1Ì5Ì5Ì8ÌA̾Ì“­6øà«à«¬¬$¬,¬0¬4¬8¬<¬@¬D¬L¬Q¬[¬b¬o¬‚¬‰¬“¬“¬•¬Ÿ¬¦¬­¬­¬¿¬& ÀPe(Ÿ(Ÿ:Ÿ@Ÿ@ŸIŸRŸRŸyŸ€Ÿ‰Ÿ’ŸœŸªŸµŸ»ŸÅŸ Pe!øe�ÈŸÈŸÜŸãŸìŸñŸôŸ÷Ÿ    & - 0 ; > Z ] c f • › ¢ ¢ ² "&e�# �þ(¡(¡J¡J¡V¡V¡b¡b¡h¡r¡¡‰¡�¡�¡š¡¤¡®¡»¡Å¡Ë¡Ë¡Ö¡à¡ê¡÷¡¢¢¢¢"¢,¢9¢C¢I¢I¢T¢f¢p¢}¢‡¢�¢�¢˜¢ž¢¨¢µ¢¿¢Å¢Å¢Ð¢Ø¢â¢ï¢ù¢ÿ¢ÿ¢ÿ¢ ££ £+£?£I£V£`£k££‰£–£ £«£Â£Â£×£ë£ë£õ£¤ ¤¤.¤8¤I¤R¤R¤^¤d¤u¤}¤‹¤�¤­¤¿¤Í¤Í¤Û¤Û¤þ¥${�þ%È  ˆœˆœ”œ›œ œ©œ±œ¿œÒœÞœõœ����#�:�>�F�&   '�Ñàèšèšöšúš›››››#›'›*›4›(Ñà)€òÿð›ð›œœ œœ œ)œ)œ,œ0œ8œ*òÿ+(ްø˜ø˜™ ™&™.™7™;™?™L™T™Y™Y™j™n™u™™™�™–™Ÿ™®™µ™¼™É™Ð™Þ™å™ì™ü™,,ް-X½Åpšpšzš~š‚šŠššš š.½Å/x��¸ ¸ Æ Ò á ç î ö ¡¡!¡0��1X GH�H�V�]�_�h�k�|�|�ƒ�‡���˜�±�¿�Á�Á�Ê�Ì�Ì�Õ�×�×�à�â�â�ë�ë�ô�ú�ý�žž#ž1ž1žÕž22 G3hÿ 8œ8œHœTœ^œeœsœwœzœ‚œ4ÿ 5€°½šš šš%š,š4š<šDšLš\šdšlš6°½7`éò˜›˜›¢›©›Å›É›Ý›ã›é›8éò9`GP؞؞âžéžŸ ŸŸ Ÿ&Ÿ:GP;`àé8›8›B›N›p›w›ˆ›�›•›<àé=xÅÑ š šªš·š¾šÇšÇšÔšÛšÝšãš>ÅÑ?àp‘p‘z‘„‘�‘¦‘¦‘«‘­‘¹‘Ñԑԑæ‘è‘ø‘ø‘ý‘ÿ‘’5’@#APGŽ0•0•<•@•i•X•T•y•†•�•š•š•±•¸•¸•ϕ֕֕í•ô•ý•ý•–– – –1–1–B–B–S–S–d–d–u–u–†–†–—–—–¨–¨–¹–¹–Ê–Ê–Û–Û–ì–ì–ý–ý–—— — —0—0—B—J—X—i—w—ˆ—‹—�—Ÿ—¦—¦—÷˜BQGŽC€G8’8’A’A’h’V’H’‰’™’‹’º’Ô’Ô’Þ’ã’ã’÷’ü’ü’“““=“B“B“V“[“[“[“x“x“Š“®“Ô“ë“÷“”””””+•D7GE@&+è:ò:ú:ÿ:F&+GÐt  Ž Ž2ŽJŽZŽzŽzŽŒŽ¤Ž¤Ž¿ŽàŽéŽñŽõŽûŽ� �����"�%�,�2�9�?�C�H�R�R�d�k�r�t�x���‹�Ž�’�—�š���¨�®�µ�¾�×�ó�ü�� ���!�+�5�<�C�E�L�S�X�\�i�p����—�¡�ª�Ã�ß�è�ñ�ù�‘‘ ‘‘‘"‘)‘7‘A‘K‘T‘m‘‰‘’‘›‘£‘¬‘²‘¶‘»‘Á‘ґܑܑø‘’’’0’>’L’s’g’’’®’·’·’Ò’æ’æ’“““ “(“1“:“C“i“m“¸“H¡t I°³Æð†ð†‡‡‡+‡9‡?‡]‡p‡‡އœ‡œ‡§‡ª‡ç‡J³ÆK¸î33 343:3@3N3_3m3{3‰3Ÿ3£3©3¼3¿3É3LîMHÂÂ&Â=ÂEÂEÂKÂNOp(PÂPÂdÂx—Ÿ¸ÂÀÂÈÂÈÂÐÂP(Q8Aåpxpx|x|xŒxœx¬x¼xÌxßxòxÿxy#y9y9yNyPyeygy|y|y‘y¯y´yÀyÌyØyäyðyüyzz#z2zAzPz_znz}z}z�z˜z£z«z´zÌzÑzázìz÷zÿz{ {%{5{E{P{[{c{l{„{�{˜{¡{±{¶{Å{Ì{×{â{í{ø{|||$|/|:|E|P|[|[|j|q|||‡|’|�|¨|³|¾|É|É|Ø|ß|ê|õ|õ|} }} })}3}=}=}L}S}]}g}q}{}…}�}™}£}­}·}Á}Ë}Õ}ß}é}ó}ý}~~~%~/~9~C~M~W~a~k~u~~‰~“~¼~R®AåSxÆ2è‡è‡ˆˆˆ ˆˆˆ&ˆ&ˆ<ˆAˆAˆWˆ\ˆ\ˆsˆuˆuˆŒˆŽˆŽˆ¢ˆ¤ˆ¤ˆ¸ˆºˆºˆЈÒˆÒˆèˆèˆïˆóˆüˆ ‰‰‰ ‰$‰3‰?‰C‰F‰M‰M‰`‰m‰u‰}‰‚‰™‰«‰¶‰ʉð‰Š ŠŠŠŠŠ0ŠCŠLŠPŠPŠbŠuŠwŠwŠ‚ŠŽŠŽŠŽŠ¨ŠªŠÅŠÇŠߊáŠûŠûŠûŠ‹ -‹‹‹;‹I‹P‹À‹TvÆ2U(2tÀ‹À‹Ø‹ã‹ã‹ç‹ð‹÷‹ŒŒŒ$Œ)Œ)Œ?ŒDŒDŒ[Œ]Œ]ŒtŒvŒvŒŠŒŒŒŒŒ Œ¢Œ¢Œ¸ŒºŒºŒÐŒÐŒ׌ÛŒߌäŒèŒõŒøŒ���)�0�0�J�L�g�i���ƒ���¡�½�À�Ë�ŽVL2tWÀ›°x™x™|™’™™™±™º™Å™ЙÛ™â™ç™ì™ššš*š/š1šX ›°YÐ<³¨€¨€¬€»€¿€΀Ý€ì€û€ ��)�A�S�u�•�£�¿�Ñ�ê�‚‚2‚:‚\‚w‚‰‚›‚ª‚ª‚º‚͂ނí‚ý‚ -ƒƒ$ƒDƒDƒMƒMƒMƒ`ƒmƒwƒ”ƒ¡ƒăâƒëƒøƒüƒ„„'„?„H„X„`„e„x„ž„®„¾„Ʉلބ愅&…>…M…U…d…m…u…u…‡…¬…´…¼…Ç…É…Ù…ñ… †!†9†K†]†o†�†“†œ†¥†·†ņɆê†Z�<³[0 ÞA8R8R1>d-$ex%®‘®‘ȑґ֑ڑߑᑒ ’ ’)’f%g8<XXpz†ŽŽž¤²¹Òßíû €$€,€6€E€M€Z€b€e€e€e€s€s€�€�€‘€”€¤€h.<ih  Á Á©Á®Á®ÁÁÁÊÁÌÁÑÁj kxÑîàîàá áá)á1á9áCáGáNáTáhápáuáxáƒáŽá–á¡á¬á±á±áËáÒáÙáäáïá÷áùáââââ&â&â@âaâgâmâ€â†â�â�â£â©â©â±â¹âÄâÉâÛâèâìâûâýâãããã!ã!ã&ã:ãBãBãÄãlVÑm804;";*;/;n04op4?P•P•e•t•ˆ•••›•¡•¤•Å•p4?qphsp—p—…—”—¨—µ—»—Á—Ä—å—rhssp�›™™™$™8™E™K™Q™T™u™t�›u`+4•••-•:•@•C•K•v+4w`_h(—(—:—M—Z—`—c—k—x_hyh†�¸˜¸˜ʘݘê˜ð˜ó˜û˜z†�{ +¸“¸“¼“À“À“Õ“î“î“””?”a”p”y”†”�”�”ª”ÔДԔܔܔܔï”ï”ÿ”••|* +}?_ȕȕ̕ЕЕå•þ•þ•–(–_–�–�–™–¦–­–½–Ê–ã–ð–ô–ü–ü–ü–—— —#—'—~*?_°s†è—è—˜˜˜$˜$˜.˜E˜b˜€˜†˜�˜�˜£˜¦˜²˜€s†�pþ3þ3 -444$4*4.494‚ƒ@rwYY YYY„rw…@Î3Î3Ü3ñ3÷3†‡@P:Y:v:{:ˆ‰X)¦¦ -¦¦$¦+¦3¦;¦C¦K¦S¦^¦h¦p¦{¦…¦�¦–¦›¦ª¦¯¦¸¦¸¦È¦×¦Ü¦ã¦è¦ð¦ò¦§§§F§F§H§^§a§g§Š2)‹HgP¨P¨\¨t¨t¨‚¨‚¨‚¨‚¨‹¨‹¨’¨¹¨Á¨Á¨Ì¨Ì¨Ú¨ê¨ê¨ø¨þ¨þ¨©©©µ©Œ)Hg�Pgޏ©¸©Ä©Í©Í©à©í©ù©ªªª(ª4ª@ª@ªPª\ªeªlªuªšªŸª²ªÂªÎªÎªäªäª « ««"«$«>«J«M«n«Ž1gŽ�)Hh§h§~§ˆ§•§£§¬§¹§¹§Ç§Ç§Þ§ç§ø§ú§ý§ÿ§¨¨'¨2¨2¨2¨5¨=¨B¨P¨�))H‘ ŽŸp«p«~«€«€«‰«’« «¥«®«±«¶«Ä«Î«Û«’ŽŸ“гjV®V®ˆ®“®›®¤®µ®®×®Ú®Ý®á®ê®ê®ø®¯¯¯?¯D¯U¯�¯†¯—¯·¯¼¯˯÷¯ÿ¯°°E°M°R°R°q°Œ°�°¡°À°À°Ó°ذë°ÿ°± ±%±%±>±>±>±>±>±N±c±f±i±m±m±r±�±ª±¯±¸±ɱѱð±²²²0²0²0²=²T²V²V²V²c²z²|²|²‰² ² ²§²º²º²ͲÒ²å²ù²³³ ³(³?³Q³Q³d³y³y³y³†³�³Ÿ³Ÿ³Ÿ³¬³óųųÒ³é³é³ð³´´´´+´8´T´Y´a´f´r´Œ´ž´ž´±´Æ´Æ´Æ´Ó´ê´ì´ì´ù´µµµ*µ*µ=µBµUµiµpµ’µ³µ¸µ¿µ͵ڵߵߵߵûµ¶¶¶*¶ ·”Á³j• r³öªöª« «"«(«-«D«[«r«„«ª«Ñ«Ô«í«¬¬¬$¬7¬?¬R¬R¬g¬l¬�¬•¬²¬·¬¼¬ĬάÖ¬Ö¬ݬæ¬æ¬æ¬ñ¬­3­9­R­k­m­‡­�­¦­¿­Ç­Ç­Ò­Ò­Ü­Ü­ï­-®B®T®–Kr³—£âÎŒÎŒçŒ ��O�[�v�‡�œ�£�á�í�ŽŽ)Ž-Ž-Ž1Ž6Ž<ŽEŽHŽRŽ_Ž|ŽŽŽŽ„ŽŠŽŠŽ¥Ž³Ž¾ŽÆŽÚŽáŽêŽêŽ���#�4�4�C�H�H�T�˜I£â™ø -^ DO„\ŠŠ¹¾¾ÂÌØóú -,HH[h€‡šš­²ÅÙõúÿ+2;=BVss†“«²ÅÅÚÜñþ <@@KRdgin‹£¥½ÏÒÔÙööö  !B^^cgƒ��ªÈÒÖêþ*>H^bxŒ£¥¥¸ÂÖàé -  *@DDDOVj‚„œ°ÇÌÌßç    C C U š¦ -^ ›ê  ÞÞîõ16=]_‹›»ÀÇÇÏÖáéôÿ 'œ'ê  �`ÁjÞ;Þ;ø;ü;<<<"<$<'<.<5<5<Q<U<[<[<s<‡<˜<˜< <Ä<ä<ä<= -=+=0=<=G=L=Y=\=“=¤=©=¯=±=·=º=Ë=Ð=Ó=Û=ä=ÿ= >6>I>N>R>t>‡>Œ>£>¶>»>¿>á>ü>?/?4?E?J?M?O?U?[?l?q?w???‰?’?©?¼?Á?Å?ç?@"@5@:@U@u@Œ@Ÿ@¤@¨@Ê@Ý@Ý@ó@ó@ó@AAAAA)AAACACAQAiAiAqA…A…A™AžA²A¿AÜAâAâAëAëAóAÿA B)B9B@BKBaBeBeBeB„B�B•B¯B¶BÁBÙBÞBäBþBCCC)C)CkCž³ÁjŸÐ°Ç¶^¶^È^Ô^ê^÷^__)_-_3_R_F_c_e_e_–_„_e_µ_¿_ !°Ç¡¨jœnCnC~C�C‰CÃCÐCÜCâCD!DMDMDRDhDzDzD—D±DäDäDóD+EEFEFESEE„E«E°E¸EÔEÀEïEFôE(FF-D-D-k-k-x-£-ê-ä-¼-.".:.'.M.F.l.Y.€.€.�.¸.í.ç.¿.ù. -/ -/ -//¤4]‡¥È\ ’ ¾ ¾ Ô à ð õ !!!%!O!k!x!�!›!®!®!Ã!Å!Ú!ç!" """5"="="="M"B"_"o"t"’"‡"¤"´"©"Æ"Ò"×"ø"í" -##¦@\ ’ §èâ \ ÞÞ (3BKOZez™¸¾ÃÖ%+36;N{‘—Ÿ¢­ÂÇä  *5JOiˆŽ“ž³¼Áàèíø 7?J_d~�£¨¨¨¨µ½½ÒÒ÷  " B V ] p p ƒ ˆ › « Ç Ì Ö Û ï ö    ! 4 H d i i r } } ª ª ª ¼ ¨„â \ ©ÐœS~F~F˜F¨F¬F·FÂFG.GLGvG|G‚GŠGŒG”G¯G²G½GÉGH5HSH}HƒH‰H‘H–HžH¹H¼HÇHÓHØHIDIbIŒI’I˜I I¢IªIÅIÈIÓIßI,JSJqJ›J¡J§J¯J´J¼J×JÚJåJñJñJöJüJK -KKK/K>KpKšK K¥K·KÆKL*L0L8L=LOL^L˜LÂLÈLÍLßLîL(MRMXM]M]M]MiMiM~M~M‰MÈMÓMØMëMNNFNQNVNiNvN¤N¸N¿NÖNÖNóNøNO)OMORO`OeOyO€O—O—O´O¹OÖOêOPPPPP P,P5PKPWPWPdP~P‚P‚P‚P¥P°PµPÈPÈPÙPðPõPúP Q QQ+Q5Q5QGQªÁœS«Ð_vî�î�ò�ò�žž ž&ž2ž2žIžIž`ž`žwžwžŽžŽž¥ž§ž§ž«ž¬!_v­Øj â ööQ`všŸ£««´ÃÊÓØíþ%'FN]dpu|„ŠŒ˜¨­¯ÏÕÕÝÝæõ<CCCWmq’Šª¯ºÁÉÏÑÝíòô&6;@`fkw‡ŒŽ®´»ÃÉË×çìî%%//Gw�‘Ÿ²ªÊÊÜ®‚j â ¯ð‡b//0/8/2F2F2F2Q2Z2n2v222„2ˆ2Œ2‘2–2ž2»2×2ñ233(353I3Q3d3d3y3{3�3�3º3¿3Ã3Ï3ô34&4E4K4M4l4o4o4‚4�4£4ª4½4½4Ò4×4ì4ù4555&5*555@5K5V5X5w5z5…5�5•5´5º5¿5Ê5Õ5×5ö5ù566636969696C6C6N666Š6Š6Š6“6›6§6´6Ñ6á6è6î6ú677 7 7 7B7B7M7R7l7s7}7‰7�7§7¬7±7Ë7Ò7Ü7ì7ö78 8 8:8:8L8°å‡b±(H j ææö17Vu†ž½Üî "A`l„£©°°¸ÃÎíõ²,H j ³À%Z.’.’V’Y’^’^’l’q’ƒ’…’‰’�’�’£’¼’Þ’ç’ò’ù’“4“9“R“t“y“€“™“»“½“Ö“ø“ø“ø“”” ”;”Y”y”y”“”¢”´”´?%Zµ¨`r>ª>ªNª[ª[ªjªjªvª|ª¦ª¼ª¨ªÓªȪëªëªóª¶`r·p2]ž*ž*¸*¼*Ê*Ê*Ù*ä*ð*û*ý*'+,+,+N+š+~+U+¼+Á+ç+ì+ø+,,/,4,4,G,|,w,N,‡,˜,˜,»,»,É,¸52]¹°f -y -FýFýTý[ýzý™ý›ýºýÙýèýðýûýýýþþ2þ8þºf -y -»Èy -¯ ->þ>þSþ^þeþ’þ±þ³þÒþÿþÿÿ!ÿ#ÿ.ÿ9ÿ9ÿ>ÿkÿpÿ�ÿ¢ÿ©ÿÈÿçÿòÿôÿ22M\doq|‡‡§ÄÄÑÑõ¼@y -¯ -½Hå -öö8öIöUölösöŒö„ö¤öÄö°öÐöáöæö÷óö ÷0÷G÷N÷g÷_÷÷Ÿ÷‹÷«÷¼÷Ò÷¾÷ê÷÷÷÷÷øøø¾0å -¿Xs›ÍÍ8ÍJÍQÍYÍYÍhÍm͌͌͑Ͱ͵ͼͼÍËÍÍÍìÍìÍ Î Î Î,Î,Î;Î=Î\Î\Î\Î\Îk΄Î}ΜΦÎÀ2s›ÁÐ"9 ãã$ã(ã;ãCãJãQãUãWã^ãeãiãiãqãŠã”ã”ã¨ã³ãÁãÒãÖãÛãæã÷ãä ä#ä,ä0ä5äFäXäcäiäqä…äŠä¥ä¶äºäºäºä¿äíäå ååå#å.å?åPågåoåtåxå}åŽå å¨å®åÂåÄåßåðåôåôåôåÿåæ!æ8æ<æEæIæNæ_æqæ|æ‚æŠæžæ£æ¾æÏæÓæÓæäæäæäæéæéæøæúæçç<çGçMçaçrçwçŒç—ç¨ç¹çÐçÔçÝçáçæç÷ç èèèè2è4èOè`èdèdèkè|è€è€è’è—è¢è·èÈèßèçèìèðèõèéé$é*é>éCé^éoésésé…é…é…é…éŸéŠé«é«éºé¼éÝéèéîéêêêêêê-êLêLêLê[ê[ênê�ê˜ê©ê®ê´ê¾êÀêÌêÌê×êâêíê -ëëë7ëCëEëPë\ëlëwë‚ë”ëœë ë¤ë¦ë«ë³ë·ëËëÍëÒëÚëÞëàëàëéëñëýë -ì'ì7ì>ìHìTì[ìuìyìyìyìœìœì§ì¬ìÆìÍì×ìãìíìí íí(í/í9íIíSí`íjíjí|íÂ!"9 ØÁñf»f»Œ»�»–» »ª»¬»¶»À»À»Ô»ß»æ»ó»¼¼ ¼/¼5¼7¼>¼D¼N¼N¼]¼_¼f¼l¼v¼v¼v¼�¼£¼ª¼ª¼¹¼»¼ͼܼܼî¼Ä:ÁñÅðñ î¼î¼½½½(½2½4½>½H½O½\½i½|½‰½˜½ž½ ½¦½°½¿½ѽà½þ½¾Æ%ñ ÇØÍ å ÞôÞôøôõõ8õIõPõiõaõ�õ¡õ�õ­õ¾õÀõáõÍõùõùõöööÈ"Í å É?]þ¿þ¿À$À+À+À3ÀRÀWÀvÀ{À•À‚À´À¡ÀÀÀÕÀÂÀôÀáÀÁÁÁÁÁ8Á8Á@ÁÊ(?]Ë0›Þ¦Î¦ÎºÎÌÎ×ÎÿÎÞÎ Ï Ï-ÏZÏ9ÏfÏfττϣϸϥÏåÏÄÏñÏñÏÐÐ!Ð!Ð?Ð?ÐlÐlÐyвзоÐìÐÝÐøÐøÐÑ*Ñ\ÑIÑwÑhууѥѽѪÑÉÑ÷ÑèÑÒÒ!Ò!Ò3Ò3ÒQÒlÒlÒyÒ˜Ò˜Ò˜Ò ÒÌM›ÞÍX¥ Í ¦ò¦òÀòÑòÝòóòóó1ó)óIóióUóuó†ó‹ó¬ó˜óÄóÕóëó ôô)ô!ôAôaôMômô~ô€ô¡ô�ô¹ô¹ôÑôÑôÛôÎ2¥ Í ÏP¬s6Ä6ÄXÄkÄsÄzÄ�ćĉÄ�ėĚĚĚĬĬĿÄÊÄÕÄæÄ÷ÄÅÅ Å'Å,Å=ÅSÅ[ÅcÅuÅzŔŬŰŰŵÅáÅöÅÆÆ#Æ:ÆBÆKÆSÆXÆiÆ{ƃƋÆ�ƟƹÆÑÆÕÆÕÆàÆñÆÇÇ!Ç*Ç2Ç7ÇHÇ^ÇfÇnǀDžǟǷǻǻÇÎÇÎÇÎÇæÇÓÇÈóÇÈ È%È=ÈUÈZÈoÈzȋȜȳȻÈÄÈÌÈÑÈâÈôÈüÈÉÉÉ2ÉJÉNÉNÉYÉjÉ{ɒɚɣɫɰÉÁÉ×ÉßÉçÉùÉþÉÊ0Ê4Ê4ÊGÊGÊGÊ_ÊLÊÊlʌʘʞʶÊÎÊÎÊÎÊÚÊàÊëÊöÊË Ë7ËNËeË|Ë|Ë�˲˲˲ËÊËÊËØËÚËÚËèËèËñËüË -Ì%Ì4Ì;Ì;ÌOÌTÌTÌŵ̶̥ÌÑÌÑÌÍÐѬsÑ8 -Þ"¦Ò¦ÒÀÒÇÒÎÒÙÒáÒúÒúÒÓÓ%Ó%Ó1Ó5Ó@ÓlÓKÓyÓ�ÓŸÓ·Ó»ÓÀÓÀÓÖÓçÓþÓÔÔ&Ô*Ô/ÔWÔoÔsÔsÔ„ÔÅÔ¤ÔÒÔÒÔôÔôÔÕ Õ&Õ>ÕMÕRÕRÕhÕyÕ�Õ§Õ°Õ¸Õ¼Õ¾ÕæÕþÕÖ ÖÖ/ÖFÖJÖOÖSÖXÖiÖÖ…Ö‹ÖŸÖ¤Ö¾ÖÍÖÑÖÑÖäÖäÖäÖäÖéÖ× ×J×)×W×W×yׅ׋ףײ׷×Â×Ó×ä×û×ÿ×ØØ ØØ0Ø6Ø<ØPØRØlØ{ØØØØ™ØªØÁØØØáØéØíØïØÙ/Ù3Ù3Ù@Ù@Ù@Ù@ÙWÙ]ÙhÙoÙoكٟٟٲٲÙÀÙÂÙÂÙÐÙÐÙéÙúÙÚ0Ú0ÚDÚIÚIÚlÚwÚšÚ«ÚºÚÉÚèÚàÚÛ8Û8Û8ÛEÛÛ„Û„Û“Û™Û¤ÛÄÛãÛÓÛðÛÜÜ/ÜGÜKÜ\Ü|ܬܜܹܹÜÛÜÛÜûÜÝ Ý%Ý4Ý9ÝPÝhÝlÝw݌ݡݸݼÝÁÝÅÝÊÝßÝõÝûÝÞÞÞ4ÞCÞGÞGÞZÞZÞZÞZÞ_Þ’ÞÞŸÞÏÞ¿ÞÜÞÜÞþÞ -ßß(ß7ß<ßGß\ßq߈ߌߑߕߚ߯ßÅßËßÑßåßêßàààà7àNàfàjàjàwàwàwà–àœà§à²à²àÊàéàéàéàááááá!á!á:áKáeá‡á‡á›á á áÇáÖáùá -âââ?â\â\âiâŠâŠâŠâ ãÒNÞ"ÓøO k ŽîŽî¨îÐî³îÜîÜîéîüîïï-ïEï2ïXïQïdïdïqï„ï�ï–ï©ï©ï¶ïÕïÕïßïÔ&O k Õ�]¬FÁFÁfÁ~Á™Á…Á¹Á¥ÁÅÁÛÁÇÁûÁçÁÂÂÂ$Â4Â;ÂHÂSÂ_ÂjÂrÂwƒˆœ£§²·ÂÂÂÛÂäÂðÂõ ÃÃÃÃÃÃ/Ã4ÃMÃbÃqÃvÃ�ÉÉÉËäùÃÄÃÎÃÙÃÛÃæÃîÃîÃûÃóÃÄ3ÄÖY]¬×È9 O ~í~í˜í¼íŸíÈíáíÚíùíîûí!îî-îFî?îRîRî_î~î~îˆîØ 9 O ÙÐ -" -øø8øDø[øløsøŒø„ø¤øÄø°øÐøáø÷øãøùùù4ù4ù>ùÚ! -" -Û˜Õ å ¦%¦%À%Ò%Ò%Ù%ø%ø% -&&,&%&D&D&N&ÜÕ å ݰ ?¾¾4¾;¾F¾F¾\¾\¾n¾y¾„¾•¾¦¾½¾Á¾ƾʾ̾ݾï¾õ¾û¾ ¿¿(¿7¿;¿;¿;¿N¿i¿i¿u¿{¿…¿�¿ž¿¥¿¥¿´¿¶¿Ò¿ì¿ì¿þ¿Þ= ?ßø‡£&Œ&Œ<ŒFŒFŒVŒ_ŒbŒhŒhŒrŒ‹Œ‹Œ›Œ¤Œ§Œ­Œ­Œ´Œ»Œ½Œ½Œ½ŒÇŒà&‡£áp5`¨¨4¨N¨N¨a¨e¨„¨‹¨ž¨ž¨±¨¶¨ɨݨù¨þ¨©©©© ©5©A©R©W©h©|©�©ƒ©œ©´©¶©¶©Ï©ç©ç©9ªâ55`ãèÃýFUFU\UhUsUˆU�U“U–UšU°UœU¼UÁUÖUÛUåUèUìUVñUVVV1V6VX*XJXcXOXoXzXX‰XŒX�X•X®XšXºXºXºX¿XÔXÙXßXâXæXæXY YAY-YMYfYRYrYˆYtY”YŸY¤YªY­Y±Y³YÌY¸YØYØYØYØYðYZ%ZìRýEí°¯ - -,3Rqs’±ÀÈÓÕàë -î¯ - -ïhLvvZvZŠZ•Z¼ZÔZÙZÞZâZäZêZðZ[óZ[[1[I[6[U[|[”[™[ž[¢[¤[ª[°[Æ[³[Ò[Ò[å[í[ÿ[\\%\1\ð4Lvñ˜\̶”¶”ʔҔߔÿ”•• •%•+•/•3•L•L•W•[•[•q•�•…•ЕЕ‘•”•™•¨•¬•¬••Ý•á•æ•æ•í•ð•õ•–––$–3–7–9–H–L–L–b–r–v–{–{–�–’–ž–¨–³–Ù–ä–è–í–#—:—E—I—Z—e—i—k—v—z—z—z—Œ—˜—œ—œ—œ— —ç—òz\Ìóv5®ž®žàžéžþžŸŸ(Ÿ(Ÿ5ŸSŸ[Ÿ[ŸˆŸ�Ÿ¶ŸÓŸîŸôŸøŸ A F F o ‰ ¯ Æ Ì Рé ñ ö ¡¡-¡3¡7¡P¡X¡w¡|¡�¡•¡´¡¹¡Á¡Ç¡Ë¡Ï¡á¡é¡õ¡ ¢¢ ¢%¢6¢;¢T¢a¢j¢‹¢¼¢ ££££ £'£5£B£[£[£r£w£w£Ž£�£�£¤£¦£¦£½£¿£¿£Ö£Ø£Ø£ï£ï£ö£ ¤ ¤¤!¤4¤H¤d¤i¤i¤n¤n¤~¤£¤µ¤º¤º¤º¤º¤Á¤õ¤¥¥¥¥(¥?¥A¥A¥A¥N¥e¥g¥g¥t¥‹¥‹¥’¥¥¥¥¥¸¥½¥Ð¥à¥ù¥¦¦¦¦¦¦¦¦¦¦ ¦ ¦*¦/¦D¦D¦D¦L¦Q¦Q¦Q¦Y¦^¦^¦f¦f¦h¦o¦‹¦�¦ ¦´¦´¦´¦´¦´¦˦ã¦ë¦ë¦¨ôÉv5õèk ¥ æïæïðððð#ð(ð*ð1ð8ð<ðOð�ðŒð·ð¼ðÝðÝðéðñðñ:ñ?ñlñtñyñ‚ñŽñ–ñ�ñ¼ñÂñáñãñò ò$òCòIòPòPòVòYò]ònòŽò òöDk ¥ ÷8" -f ->ù>ùRùYùlùŸùªùªùºùéùéùõùýù úFúHúuú}ú}úªú¯úÎúéúïúþúûû û(ûCûHûQû]ûeûpûwû¤ûÃûÅûäûü üüFüKüRüqü�ü’ü±üÐüëüóüýýý:ý:ýFýøN" -f -ùÍ ê nn|ˆ²ÎÛòþ&(=Jglwy˜ «¾·ÖÜú'Í ê ûè.HNˆNˆ]ˆbˆvˆˆ�ˆ«ˆ»ˆÓˆ؈ìˆõˆ‰!‰1‰A‰C‰V‰i‰i‰i‰o‰ü$.HýhU_ž�ž�®�³�¹�½�Á�à�è�þU_ÿÐÇÞÆ_Æ_Ø_ä_ú_` ``9`=`C`b`V`s`u`u`¦`”`u`Å`Ï`!ÇÞ ' ..@FMYi‰Ž•µ·×ãó   %(,4LWb‚Œ* ' ð$?Ö›Ö›ö›œœœœœœ=œJœLœLœLœLœYœaœtœˆœŠœŠœ’œ¥œ¥œáœ%$?€?Læœæœðœúœ��"�/�/�2�4�:�?LX -2f(f(€(‹(–(Ä(£(Ü(ã(2))ê(X)])†)‹)—)¾)Ã)Å)ä)ê)*÷)*%*b*T*,*v*x*�*�*�*�*2 -2 @å -N&N&h&s&~&Ô&´&Œ&ú&ü&%'%'2'k'p'|'‡'‰'¨'®'µ'ò'ä'¼'(( ( (,(S(S(S(a( -/å - ’ ± ##&#-#?#G#R#R#a#a#u#‚#�#’#²#²#Á#É#Ô#Ü#ç#ò#ý#$$$$0$0$8$ )’ ±  Hñ¶™¶™Ö™ï™ï™ï™šš#š#š2šDš^šfšmšoš‚šŠšŠšŠšŒšŒšŒšŒš¡š¡š¡š¡š³šµšµšµšÈšÓšw›0ñ€$~›~›ˆ›�›™›™›¸›Å›Å›È›Ê›Л$ˆSaNQNQ^Q^QnQ„QpQ�Q’Q¤Q¶Q¾QSa`aоQ¾QÐQÛQðQõQ -R÷QRRR,RDR1RPRSRXRnRsRˆRuR”R—R—R§R¼R©RÈRÎRÎRáRôRSS-S7S3aŠ`г>S>SPS[SpSuSŠSwS–SœSœS¬SÄS±SÐSÓSØSîSóSTõSTTT'TUFU³Ãˆ .ƇƇÕ‡Ú‡î‡÷‡ˆ#ˆ3ˆHˆHˆHˆNˆ .(^ € V V € … › £ µ à Ç Ç Ð Ð Õ é é  - -< -D -I -P -d -| -~ -– -ª -­ -À -Ú -ì -,^ € 8€ Ä î -î - 2 : E L S \ ^ a  † ¡ £ ª Å Ì Õ × Ú ø ø ø     = ? Y a a } ›   § »  Ý ß æ   0 3 ; H H h j „ Œ Œ ¨ à à é é û N€ Ä  @Ìñî—î—˜"˜-˜B˜a˜l˜�˜�˜�˜Ž˜¦˜¨˜¨˜¨˜µ˜͘ϘϘá˜î˜™™ ™ ™ ™3™5™H™U™q™v™v™²™ /Ìñ!PEL&Z&ZMZ:ZYZhZpZ"EL#ÐjÁ··2·?·B·I·O·f·}·”·×·ó· ¸¸¸"¸9¸9¸L¸Y¸l¸t¸‡¸‡¸œ¸ž¸³¸À¸ݸâ¸ö¸û¸¹&¹+¹.¹H¹b¹j¹r¹w¹‘¹«¹³¹»¹À¹Ú¹â¹ç¹º ºº)ºCºKºSºUºoº‰º‘º™º›ºµº½º½ººǺÒºÒºݺݺéºéºüº<»R»R»b»$ajÁ%èv°6\6\H\T\_\d\p\{\€\‡\Œ\Œ\—\œ\œ\»\Ú\Ü\á\á\ì\ñ\ñ\]/]L]L]_]r]…]˜]�]�]°]Ã]Ö]é]î]î]^^'^:^<^<^O^b^u^ˆ^ˆ^²^&Dv°'ÐöMÞaÞaüab bb b b&bFbKbabybeb…b”bÌbÔbîb&c.cGc3cSc‹c�c«c—cËc·c×cícÙc dùcdQdQdUdYdbdndwd‰d”d¦dªdªdªdÉdÐdÕdçdùdûdeee%e%e%e)ehehe�e‹e‹eže¦e·eÃeÔeÙeêeîeóef(aöM)ðb�N8N8n8q8‡8“8½8Ù8æ8ý8 9991939H9U9r9w9‚9„9¤9¬9¬9»9Ã9Ã9Ç9Î9Ö9è9ó9ó9ÿ9::::6:;:@:R:R:^:u:w:|:Ž:Ž:š:§:±:±:Á:*Eb�+�Æ Õ .%.%>%J%U%k%W%w%y%€%‹%—%Ÿ%,Æ Õ -@Á Æ î$î$%#%+%.Á Æ /@¼ Á ®$®$Â$ã$ë$0¼ Á 1p± ¼ >$>$_$L$k$v$�$Œ$—$£$©$2± ¼ 3�HWv‰v‰‰“‰œ‰¬‰ȉ܉ð‰ò‰ Š Š Š%Š4HW5 Wh&Š&Š/ŠCŠLŠ\ŠxŠŒŠ Š´Š¶ŠÍŠäŠûŠûŠ‹6Wh7˜hx‹‹‹*‹3‹C‹_‹n‹p‹‹‚‹‡‹�‹8hx9�x‡–‹–‹¦‹º‹ËÓ‹ï‹þ‹ŒŒŒ Œ:x‡;x >‡>‡M‡a‡j‡z‡–‡¦‡»‡»‡Á‡< =`Ä Í þ þ %1G@_g>Ä Í ?ØÞöÖ`Ö`è`ô` -aaa*aCaGaMala`a}aaa°ažaaÏaÙa@"ÞöA ' H ŽŽž¥·×Üã%7W\cckr}ˆ�˜£®¹ÙáB+' H C8�ÁÆ:Æ:â:å:å:í:í:ñ:ø:;;;;';9;?;?;?;Z;_;d;r;r;};“;•;š;¨;¨;³;À;È;È;Ø;D.�ÁE`LU>�>�L�R�V�u�–�–�œ�FLUG°8K@;@;J;T;f;m;w;w;‹;�;�;©;¸;»;½;ó;H8KI@KPø;ø;ý;<$<JKPKÐ8 - -2 -B -B -L -L -V -V -` -r - -‚ -„ -� -š -š -š -´ -» -» -Õ -Ü -ò -ò -   4 4 4 4 D D D V V d r ˆ ˆ � ¿ Ô ö  % - - - ? LA8M8480;4;;;=;N48O@+0; -;;;P+0QXB°g°gÆgâgíghhhhh/h/h>h>hDhFhFhLhNhNhThVhVh]hahfhfhfhfhfhfhnhƒhƒh�h’h›h¥h²hÇhÉhähæhii!i&i,i.i.iCiFiFimizi’i’i²i²i»iÀiàiÎiæiõiúij -jj%j-j2j2j2j;jTj^j^jwj…j…jŸjµj·j¿jÅjÍjÒjÒjØjØjájájòjôj k kkk!k&k&k,k,k5kDkXkZkbkhkpkukukukukƒk—k™k­k­kµk»kÃkÈkÑkÙkâkèkîkðkðkðkøkøklll l,l.lIlOlWl\lelplslyllˆl‹l‹l™l§l¬l¬lÏlìlòlúlÿlm m mmmmm7mImRmhmnmqm‘m“m–m²m¶mÁmÊmÙmðmömþmn nnnn&n+n3n3nJnTnsnsnyn~n~n„n‰n‰n�n”n”nšnŸnŸn¥nªnªn°nµnµn»nÀnÀnÀnÈnÈnánónón o#o#o%o%o.o4o9o9o9oAoAoJoYolononowo}o‚o‚o‚oŠoŒoŒo•o•o•ožo±oÅoÇoÇoÐoÖoÛoÛoáoçoçoöoÿoppppp,p.p1p6p>pFpKpKpRpVp[pjpopyp‡p‡p˜p¶p¶p¼pÎpßpépðpq q"q(q-q-q2qEqQqYqaqiqqqzqˆqˆq�q‘qšqšq¤q¶qÊqÝqðqrrr-r2r2rOrTrfrpryrƒrŒršrŸrŸr²r¸r½rÌrÞrñrör -ss(s1sGsMsPspsusxs”sžs¡s¡s°sÃsÕsÞsôsúsýst"t%tAtEtMtRtkt~t~tƒtˆtˆt“t›t t t¦t¦t¸tÂtÈtÖtàtuu u-u-u2u:u?uHuMuMuXu`ueueujuyu~uƒu’u—u´u¶u»uÀuÅuÊuÏuÔuÙuÙuÞuãuÿuEvKvVvVvhvrvxv†v�vÇvÊvÏvÝv÷vüvüvüvw wwwww"w*w/w/w4wCwHwMwRwRwewewzw€w€w’wœw¢w°wºwñwôwùwx!x&x&x&x.x3xDQDYDYDjDrDwDwD�D›D›D¬D´D¹D¹DÑDÞDÞDïD÷DüDüDE E)E1E9EEE[EfE–EšE¨E°EµEµEÍEÍEçEñEýEF -F -F"F"F8>P>_>i>z>�>…>�>£>®>¹>ß>ß>õ>? ???4?:?:?M?b?j?m?y?h'$AixçóH\H\T\[\z\…\“\ž\¦\¾\Æ\jçókxÛç¸[¸[Ä[Ë[ê[ê[\\\\,\H\lÛçmð[vˆŽˆŽšŽ¦Ž±ŽÁŽÁŽÄŽÓŽÙŽÙŽæŽèŽîŽîŽûŽýŽ� ����%�n%[vo€vƒ(�(�1�7�<�g�i�†�¬�³�Ä�×�pvƒqÀuŠ(A(A1A8ALAUAZAxA}A›A�A»A½AÎAáAêAìAB -B8Br uŠs˜ƒ“Ø�Ø�ì���!�&�?�A�U�i�i�q�x�«�tƒ“u¸Ui@@@%@'@3@:@I@T@`@d@r@r@…@‘@›@ž@¨@vUiwPkrÜXÜXæXïXüXYxkry˜,\ð]ð] ^^Q^a^g^�^ ^°^°^µ^¹^¹^À^Ë^Ö^ã^ì^ì^ñ^ö^ý^____$_&_(_*_*_*_2_2_2_:_B_J_R_V_`_ž_z:,\{¸ H]H]Z]Z]^]c]v]y]~]~]ˆ]Ž]Ž]Ÿ]¡]«]| }�,°]°]À]Ä]É]É]Ô]Ô]Þ]ä]ä]è]ð]~,ø��˜`˜`¨`·`»`Ä`Ò`á`ð`ð`aaPaPaTa[a`ana}a}a“a–a›a¤a°a€&���@\� _ _°_´_½_À_É_Ò_Ò_â_â_ ````!`!`1`7`:`B`E`R`Z`b`j`r`r`…`…`‘`‚/\�ƒPQX®5®5¸5Ç5Ë5Î5Ô5„QX…ð�¸°a°a¾aÀaÄaÍaÙaåaåaøaøa%b)b.b:b:bNbXb[bfbibqb{b†%�¸‡póþÈ\È\Ø\Ü\á\ë\ö\ù\ý\]ˆóþ‰pþ ]]]]!]+]5]8]<]D]Šþ ‹P &°:º:Ë:Ü:ß:å:Œ &�@ ˜:¢:ª:¯:Ž �8vH{H{^{g{}{}{‚{Š{’{š{¨{­{µ{Â{Â{Ç{Ì{Ì{Ñ{Ö{Ö{Û{à{à{å{ê{ê{ï{ô{ô{ù{þ{þ{||| ||||||5|H|M|R|R|[|x|x|~|†|‹|�|˜|˜|ž|¦|«|°|¸|¸|¾|Æ|Ë|Ð|Ø|Ø|Þ|æ|ë|ð|ø|ø|þ|} }}}}}$}*}2}7}<}D}D}J}P}X}]}b}j}j}j}{}ƒ}‹}“}›}©}·}¼}Ä}Ä}Û}ë}ü}~~~~#~(~/~/~3~D~I~Q~_~m~u~y~~~†~”~¢~ª~®~³~¾~Ô~à~å~í~ñ~ÿ~ &4BJNS^c{�•š� ‚�®v‘@Ñv€t€t–tŸtµtµtºtÂtÊtÒtàtåtítútútÿtuu uuuuuuu"u"u'u,u,u1u6u6u;u@u@uEuJuJuOuTuTumu€u…uŠuŠu“u°u°u¶u¾uÃuÈuÐuÐuÖuÞuãuèuðuðuöuþuvvvvvv#v(v0v0v6v�G�X�h�h�m�m�‡�‘�‘�§�¸�½�Â�Ñ�Ö�é�ñ�÷�ÿ�Ž ŽŽ'Ž8ŽHŽHŽMŽMŽgŽqŽqŽ‡Ž˜Ž�ޢޢ޴޹޾ŽÚŽóŽóŽøŽøŽ� ����&�)�.�.�R�Z�b�g�o��„�„�—�°�°�µ�µ�Á�Ç�Ï�Ô�Ü�ä�ç�ì�ì����&�6�;�\�q�y�”�š�¢�§�¯�·�º�Ô�Ü�÷�ý�‘ -‘‘‘‘‘‘>‘R‘^‘d‘l‘q‘y‘�‘„‘—‘¬‘¸‘Ö‘Ü‘ä‘é‘ñ‘ù‘ü‘’"’@’F’N’S’[’c’f’f’f’f’x’�’’’—’©’¹’¹’¾’¾’ç’“ “ “'“=“B“G“G“Y“^“c“�“‹“—“�“¥“ª“²“º“½“æ“î“ô“ü“ ””””#”,”A”F”\”l”l”q”q”š”´”¾”¾”Ú”ð”õ”ú”ú”%•*•=•ˆ•¡•©•®•À•ɕޕã•ù• – –––(–4–4–?–I–I–[–d–y–~–”–¤–¤–©–©–ÖÏ–Ï–Þ–è–è–ú–———3—C—C—H—H—b—n—n—}—‡—‡—™—¢—·—¼—Ò—â—â—ç—ç—˜ ˜˜˜!˜!˜3˜8˜=˜Y˜e˜j˜r˜x˜€˜Œ˜‘˜¤˜²˜¿˜˘Иؘݘå˜í˜ð˜õ˜™&™.™I™N™V™[™c™k™n™ˆ™�™�™¹™Ù™Þ™æ™ë™ó™û™þ™þ™šš*š0š8š=šEšMšPšUšqš†šŽš©š¯š·š¼šÄšÌšÏšéšñšñš›:›@›H›M›U›]›`›`›s›€›Œ›‘›™›ž›¦›®›±›¶›Ò›ç›ï› œœœœ&œ.œ1œKœSœSœ~œ œ¥œ­œ²œºœœÅœÅœØœåœñœ÷œÿœ� ����8�M�U�s�y���†�Ž�–�™�³�»�»�ç� -žžžž%ž-ž0ž0ž0ž0ž0žBžKž`žež{ž‹ž‹ž�ž�žªž´žÀžÅžÊžÊžÜžážæžôžŸŸŸ!Ÿ)Ÿ.Ÿ6Ÿ>ŸAŸFŸbŸwŸŸšŸ Ÿ¨Ÿ­ŸµŸ½ŸÀŸÚŸâŸâŸ  + 1 9 > F N Q Q Q d q } ƒ ‹ � ˜   £ ¨ Ä Ù å ¡ ¡¡¡¡&¡)¡C¡O¡O¡{¡ž¡¤¡¬¡±¡¹¡Á¡Ä¡Ä¡Ä¡Ä¡Ä¡Ö¡ß¡ô¡ù¡¢ ¢ ¢$¢$¢;¢Q¢V¢d¢o¢t¢†¢�¢¤¢©¢¿¢Ï¢Ï¢Ï¢ã¢ó¢ø¢ø¢£%£*£8£G£L£^£g£|£�£—£§£§£§£»£Ë£УУê£ô£ô£¤0¤5¤5¤_¤d¤i¤i¤y¤‚¤‘¤‘¤–¤¨¤±¤Ƥˤá¤ñ¤ñ¤ñ¤¥¥¥¥4¥>¥>¥_¥z¥¥¥©¥®¥³¥³¥Ã¥Ì¥Û¥Û¥à¥ò¥û¥¦¦+¦;¦;¦;¦O¦_¦d¦d¦~¦ˆ¦ˆ¦©¦Ħɦɦó¦ø¦ý¦ý¦ §§%§%§*§<§E§Z§_§u§…§…§…§™§©§®§®§ȧҧҧ󧨨¨=¨B¨G¨G¨W¨`¨o¨o¨t¨†¨�¨¤¨©¨¿¨ϨϨϨã¨ó¨ø¨ø¨©*©/©A©J©_©d©z©Š©Š©•©š©š©±©Ç©Ì©Þ©ç©ü©ªª'ª'ª2ª7ª7ªNªqªvªˆª‘ª¦ª«ªÁªѪѪܪáªáªóª«««,«5«D«M«c«c«u«~«“«£«£«¨«¨«è«è«è«ÿ«¬,¬P¬`¬e¬e¬e¬n¬…¬˜¬¡¬°¬°¬µ¬µ¬õ¬õ¬õ¬ ­ ­]­m­r­{­’­¥­®­½­½­­­®®®®,®j®r®w®€®—®ª®³®®®Ç®Ç®Ç®¯¯¯'¯:¯C¯R¯R¯W¯W¯—¯—¯ª¯³¯¯ǯЯ߯߯°°°° °(°0°C°H°M°U°]°e°e°j°j°j°j°j°j°ª°ª°³°°ǰǰǰÖ°Û°Û°í°ù°±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±"±"±"±"±"±(±-±-±6±D±R±W±_±d±s±~±‰±‰±�±�±¥±­±­±´±´±ɱѱä±ò±÷±ÿ±² ²²"²"²)²)²>²F²F²M²M²b²j²u²‰²‘²–²¡²¬²¯²¯²²²¹²¹²DzÕ²زݲê²ñ²ù²ù²ü²³³³ ³"³'³8³?³G³G³L³L³U³c³q³v³~³ƒ³’³�³¨³¨³¯³¯³ij̳̳Ó³Ó³è³ð³´´´´#´+´6´A´A´H´H´]´e´e´l´l´�´‰´”´¨´°´µ´À´Ë´δδѴششæ´ô´÷´ü´ µµµµ µ&µ&µ4µBµEµJµ[µbµjµjµoµoµxµ”µ¢µ§µ¯µ´µƵѵܵܵãµãµøµ¶¶¶¶¶$¶$¶$¶$¶$¶$¶$¶$¶$¶$¶)¶)¶)¶=¶B¶B¶B¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶V¶[¶[¶[¶[¶[¶[¶[¶a¶f¶f¶z¶}¶„¶޶”¶™¶ž¶ž¶µ¶º¶º¶Ŷжë¶ø¶·(·6·<·J·U·`·{·‘·—·Ÿ·²·½·È·æ·ê·ø·¸¸)¸?¸E¸M¸M¸M¸M¸M¸M¸M¸M¸M¸M¸M¸M¸M¸M¸M¸R¸R¸]¸o¸z¸•¸¦¸±¸̸θ÷¸÷¸ü¸ü¸¹¹¹+¹J¹O¹[¹h¹h¹ƒ¹“¹¡¹®¹·¹ƹййâ¹â¹â¹ò¹ººº™Á²x4¢   - - - - - - - - - - - - - - - -   - -   - -   - -   - -   - -   - -     ³Ø3‹ðÂðÂà Ã"Ã$Ã-ÃEÃ[ÃjÃrÀÄÖÙáêîîÃÁÃÚÃÄëÃ*Ä>ÄOÄ_ÄuÄuėĩĺļļÄÇÄÅÅ ÅÅÅÅÅÅ-ÅBÅMÅXÅ`ÅhÅlŃŃśŠŠŰŸÅÊÅÔÅæÅðÅÆ ÆÆÆ!Æ)Æ;ÆEÆWÆaÆqÆ}ƂƂƒƚƬƶÆÈÆÒÆâÆîÆóÆóÆóÆÇÇ Ç$Ç1Ç=Ç=ÇBÇMÇ\ÇaÇfÇkÇkÇpÇ{ÇŠÇ�ǔǔǔǔǔǔǔǔǔǙǙǞǤǤǤǤǤǤǩǩǸÇÊÇÖÇßÇìÇøÇ ÈÈÈÈ3ÈGÈXÈyÈ~ȕȧȾÈÇÈÐÈÝÈåÈøÈÉÉÉ -É -É -É -É -ÉÉÉÉÉ;ÉTÉ\ÉwɈɩɫɿɿɿɿɿɿɿɿÉÄÉÄÉÄÉÓÉáɿɿÉñÉÿÉÊÊ(Ê1Ê1ÊFÊRÊWÊfÊjÊrÊ�ʛʤʩʯÊÂÊÊÊÖÊêÊûÊË!Ë&Ë&Ë&Ë&Ë1Ë?ËDËVËbËkËwË|ˀ˅˅˅˅˅˅˞˞˞˞˞˞˞˞ˣˣˣˣˣˣ˸˸˸˸˸˸˸˸˸˸ËÀËÝËúËÌ!Ì2ÌSÌUÌiÌuÌzÌzÌzÌƒÌ¡Ì­ÌØÌäÌäÌéÌéÌéÌéÌéÌéÌéÌéÌéÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍ#Í(Í(Í(Í0ÍHÍQÍUÍ`͔ͣͨ͞Ͱ͵͵͵͵ÍÇÍÛÍùÍÎ ÎÎÎÎ%Î9Î_ÎjÎrÎwÎwÎ|Î|Ύ΢ÎÀÎËÎÐÎÕÎÚÎÚÎìÎÏ&Ï1Ï9Ï>Ï>ÏCÏCÏCÏKÏhυϑϰÏÁÏâÏäÏóÏõÏõÏõÏõÏõÏõÏ -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ÐÐÐÐ"Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð.Ð.ÐBÐDÐDÐNÐNÐUÐgДЪнÐÒÐêÐíÐúÐÑ4ÑWÑ�цљѣÑðÑðÑóÑÒÒÒ:ÒHÒLÒLÒ_ÒyÒyÒ¥Ò¨Ò·ÒÌÒíÒþÒ8Ó$ÓÓHÓZÓZÓ]ÓbÓeÓ‚Ó�ÓÂÓäÓäÓÔÔ"Ô7ÔXÔiÔ�Ô{ԫԫԫԮԳԳԹԯܴb3‹   µ¸àTØäØäêäÿäåååå%å%å6åFåQåaåfåkåsåså€å�åšåšå¢å¦åªåÀåÀåØåÚåÚåéåñåñåææææ æ æ æ'æ'æ'æ+æ3æ8æ=æ=æAæIæMæRæRæRæRæRæRæRæRæRæRæRæRæRæRæWæWæcæ|æŒæ•æ¨æ­æµæµæºæºæÄæÐæéæùæç -ççç'ç,ç4ç4ç9çCçQç}ç‰ç‰ç›ç¥ç­ç²çÁçÐçÕçáçççìçìçìçìçìçìçìçìçìçúçèè'è,è4è9èAèEèXè]èeèjèoèoèoèwè|è„èˆè�è™è¡è¦è«èµèÃèïèûèééé é$é3éBéNéTéYé^é^éhé�é‹é¤é¯é·éÌéÎéÝéåéúéúé êêê(ê7êIêOêTêXê\êkê~ê˜ê§ê¯êÄêÄêÐêÕêáêìêñêñêë2ë7ëAëVëaëië~ëƒë’ëšë¯ë´ëÂëÜëëëóëìììì%ì0ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì5ì:ì:ì:ìBìBìBìBìBìBìBìBìBìBìBìBìPìpì•ì¥ìªì²ì·ì¿ìÃìÇìÚìßìçìììôìùìíí íí"í*í,íLíTíYíaíeíiírízíí„íŽíœíÈíÔíÜíÜíîíøíýíîî#î'î:î@î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îEîEîEîEîEîEîEîEîEîJîJîJîWîdîhîuî‹î“î¥î¯îÁî×îÙîÙîäîéîïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï$ï0ïPï_ï_ïiïsï“ï›ïžï£ï£ïµïÂïÂïÇïÇïâïóïöïùïððððð ð&ð.ð>ðNð[ðaðiðyð‰ðœð¢ð¢ð§ð§ð§ð§ðÀðÌðìðÿðÿð ññ?ñGñJñOñOñañnñnñsñsñ’ñ§ñªñ­ñµñºñºñÃñÌñÔñÚñâñòñòòòò-ò=òPòVòVò[ò[ò[ò[ò[ò[ò[ò[ò[ò[ò[ò[ò[ò[ò[òfòqòò‘ò–ò–ò¡ò«ò¼òÁòÁòÈòÍòÍòáòáòæòæòæòüòó,ó?óEóMóoó|ó‹ó‹ó�ó�óšóšó¥ó«ó¹óËóËóÒóÙú¶~àT         - - -     ·p¬àúàúòúûû û ûû1û<ûCûTûgûmûmûmû|û–û�û¦û°û³û¿ûÈûÒûÕûÚûÚûðûúûúûüü%ü:üAüJüVükürürürü€üŽü˜ü›ü©ü³ü¶üÈüÈüÍüÒüâüåüêüúüýüý -ýý$ý)ý1ý@ýOýOýOýeýoýoý‡ýŽýšý¯ý¶ý¿ýËýàýçýçýçýõýþ þþþ(þ+þ=þ=þBþGþWþZþ_þoþrþvþþ‡þ™þžþ¦þµþÄþÄþÄþÚþäþäþüþÿÿ$ÿ.ÿ>ÿPÿWÿfÿwÿwÿ~ÿ~ÿ~ÿŒÿšÿ¤ÿ§ÿµÿ¿ÿÂÿÔÿÔÿÙÿÞÿîÿñÿöÿ&8=ETcco��ˆ¯¸µ¬¹à’ ÐÐæéù ,,:BENNUUfv�…�›£®ºØÝìììò÷&;NT\ou}}‚˜¤¹¼¼ÊÕãñÿ  +7@TYpx�‰‰±´¹¹ÂÕÛãöü   ' 4 G M U h n v v v v Ÿ Ÿ ¤ À à Ê Ú ç  - -. -8 -E -a -u -u -¹ -ºƒ’  - - - - - - - - -»€%’:LTT``gxŠ��››£¨°°¿ØÚâû (33;DOXcmvyƒ’£µ¸½ÐÐéý 22K_ggy|�””­ÁÉÉÕêíö %>@Unvv��œ¡¡¨³Ê¼w%’½Ð)8À -À -Ú -í -û - & 0 > > [ h h r r | � ™ ™ ¤ ¤ « µ » Á È Ý è      % 0 ; U _ g ~ Ÿ ´ À Ð Õ Õ Û á ì ù  ! % + 3 8 A b f l t y y † � ¨ ” ´ ¸ ¾ Æ Ë ì ð ö þ )59?GLmqw„‘˜¹½ÃËÔõùÿ 'HLRZc„ˆŽ––¢¯¶×Ûáéù$,,1>Efjpxˆ©­³»»»»ÀÀÀÍÔõùÿ15;CCPWx|‚Š“´¸¾ÆÆÆÆÒÒÝçð-2CWWw|��Œ”œ¥ÅÒáð - -*/44?G\gt™«½ÐÈèíòòòöö;@EEMaj�›¦¦ºÈÑÖÛààèóøø 6 NSS[yc‘––¡·Øäõú   ?DI]Iuzz‡ŒŒ”™™¥¶ÈÍÍáÍùþþ  *///CSXXXl|���•¥ªªª¾ÎÓêÓSAkp¬špÄÉÉÉØèíííü  .3[I3sx Žx¸½åÓ½ý# M]bbb�m«»ÀÀÌÑÑÝâââõ - - --222EUZZZm}‚‚Š��—œœ¤©©±¶¶¾ÃÃÐÕÕâç5#çBG•ƒqG¢§§§¶ÑÖÖÖç&++388@EEMRRRŽ|]­ÈÍÍÍ ÷Ø(CHzhH’—É·—áæ æ  :  R W W W w | ’ Š ž ® » Í ð õ   + 8 q ‹ ™ · ¹ è ð ð ð ü ü !!!7!B!L!W!\!g!o!t!y!y!„!Œ!•! !°!È!à!ô!ù!þ!þ!"$"."3">"H"M"M"X"k"u"€"¡"­"¾"Ã"Ô"Ø"Ý"â"â"ò"ý"###&#1#K#]#o#z##Š#›#¤#¯#¼#Ç#á#ó#$$ -$$$$ $ $*$/$/$:$?$?$J$O$O$i$n$n$v${${$†$‹$‹$–$›$›$¦$«$¿$«$Ë$Ö$Û$ï$Û$û$% % %%%%&%4%9%9%J%O%O%`%e%e%%Š%�%—%�%£%¨%¼%¨%È%Í%Õ%Í%á%æ%ú%æ%&& & & & &+&+&0&<&0&T&Y&Y&e&Y&}&‚&‚&Ž&‚&¦&«&«&·&«&Ï&Ô&Ô&Ô&ä&é&ý&é& '' '+'0'D'0'P'\'g'r'w'‹'w'—'¨'­'­'µ'º'º'Â'Ç'Ç'Ð'Õ'Õ'Þ'ã'ã'ì'ñ'ñ'ü'(( ((((!(!(,(1(1(<(A(A(L(Q(Q(\(a(u(a(�(Œ(—(¢(§(§(´(¹(¹(Æ(Ë(Ë(Õ(Ú(Ú(ä(é(é(ó(ø(ø())))))!)&)&)3)8)8)8)8)8)@)E)E)M)R)R)Z)_)_)g)l)l)t)y)y)�)†)†)†)†)†)š)Ÿ)³)Ÿ)¿)Ð)Õ)Õ)ë)ö)ö)* *5*@*Y*E*e*p*{*€*€*–*¡*¡*Å*Ê*à*ë*+ð*++&+++++A+L+L+p+u+‹+–+¯+›+»+Æ+Ñ+Ö+Ö+,ì+ , ,0,5,K,V,[,z,f,š,†,¦,¿,«,ß,Ë,ë,ö,û,û,%--1-1-U-Z-p-{-€-Ÿ-‹-¿-«-Ë-ä-Ð-.ð-.. . .J.6.V.V.z..•. .¥.Ä.°.ä.Ð.ð. /õ.)//5/@/E/E/T/Y/Y/h/m/m/~/ƒ/ˆ/ˆ/™/ž/£/£/°/¿/Ä/É/É/Ö/å/ê/ï/ï/0000=0B0G0G0i0n0s0s0•0š0Ÿ0Ÿ0Ÿ0Á0è0í0ò0ò011111@1g1l1q1q1“1˜1�1�1�1¿1æ1ë1ð1ð122222>2e2j2o2o2‘2–2›2›2¶2»2À2À2À2Û2à2å2å2å233 -3 -3 -3%3*3/3/3J3O3T3T3T3o3t3y3y3y3”3™3ž3ž3ž3¹3¾3Ã3Ã3Ô3Ù3Þ3Þ3ï3ô3ù3ù344;4Y4Y4Y4r4w4ƒ4‘4°4»4à455!565F5K5K5V5[5[5t5x5„5�5˜5¬5¶5É5Ð5Ð5Ð5Þ5ã5ô5 66 6*6267676<6<6@6D6P6Z6d6i6i6n6n6y6ƒ6ƒ6ƒ6ƒ6ˆ6ˆ6ˆ6’6’6—6—6¡6¡6®6Î6Ó6Ó6Ý6Ý6â6â6é6é6ö6777%707;7@7i7a7�7‘7º7²7Ò7Ò7Ò7Þ7ç7í7û7û78868?8G8g8g8g8g8‹8•8ª8È8È8È8÷8999 9;9P9Z9Z9Œ9“9˜9ž9¤9«9°9·9À9Ö9Ö9Ú9Ú9û9::: ::!:3:H:`:l:}:‚:“:²:Î:å:è:í:ø:ý:ý:;;,;7;7;:;L;L;~;¡;¡;¡;ÏB¾A8   - - - - - - - -  - - - - - - - -   -  ¿€˜¥ðrðrsss%s0s0s=sNsSs]sÀ˜¥Á@€:Š:’:—:ÂÃPîëîë÷ëìì#ì#ìCìÄÅH]ƒV@V@l@r@y@�@‰@Œ@—@«@²@µ@·@À@Ò@Ò@Õ@Ý@ó@ö@AA -AAAA+A+A?AEAMAŠAÆ0]ƒÇ€ÌYннâ½ó½û½¾ ¾¾¾¾)¾<¾U¾X¾k¾k¾s¾|¾‚¾‡¾‡¾�¾˜¾ž¾£¾£¾«¾´¾º¾¿¾¿¾Ç¾Ð¾Ö¾Û¾Û¾ä¾ð¾ô¾ù¾ÿ¾¿¿ ¿¿¿ ¿ ¿:¿P¿P¿P¿X¿Z¿Z¿Z¿b¿d¿d¿d¿l¿n¿n¿n¿v¿x¿x¿…¿…¿‹¿�¿—¿¢¿¢¿²¿²¿²¿¹¿Ä¿Ä¿Ô¿Ô¿ß¿ã¿é¿ÀÀ"À.ÀKÀNÀUÀgÀoÀxÀƒÀƒÀŽÀ”À™À À«À°À·ÀÂÀÎÀÔÀÔÀëÀóÀùÀùÀÁ'Á-Á2Á9ÁDÁDÁIÁ]ÁbÁhÁjÁjÁqÁ|Á|Á‰Á‰Á‰Á‰ÁNÂÈ—ÌY  É°ÐÆãÆãÜãããîãûãä ä+ä+ä?äGä_äeäƒä—ä¢ä¨äÁäÁäÑäÑäèäêäíäùäå åå å%å+å7å7å9åMåXå]å]å]åvååšå¬åºåÇå×åäåäåñåûåæææææ#æ#æ+æ0æ0æ8æ=æ=æEæJæJæQæVæVæ]æbæbæmæræræ}æ‚æ‚æ�æ’æ’æŸæŸæ´æ»æÁæÄæËæÎæÙæàæãæãæ÷æùæÿæ -ç -ç -çç-çBçRçcçiç|ç‚ç‡ç‘ç¤çµçÀçÆç×çäçîçýç -èèèè2è8èIèVè\ènènè€è…è“èŸè§è¯è·è¾èÄèÕèâèçèééé)é0é@éJéPéXé^éiéoété�é“é“é“éžé§é»ééëʽÐË0©Ìˆ¼ˆ¼–¼–¼ª¼®¼¶¼¾¼É¼Ô¼Ü¼ç¼ò¼÷¼÷¼½½ ½*½5½7½B½M½^½`½l½w½‚½‹½“½“½—½Í½Ì-©ÌÍ(LަT¦TÆTÆTÝTâTêTòTúTÿTU"U+U2U8U=UEUaUkUmUoUUU�U�U§U©U«U»U»U»UÀUÈUÐUØUÝUñUVV VVVV)V0V7VCVaViVvV|V�V–VžVžV±VÁVÁVÄV WÎLLŽÏx->4>4D4X4[4c4j4n4r4r4y4€4„4Œ4�4�4—4ž4¢4ª4®4®4µ4¼4À4È4Ì4Ì4Ó4Ú4Þ4æ4ê4í4ñ4Ð6-ÑÐîV2V2d2d2x2z2z2†2ˆ2”2–2¢2©2±2¸2Ç2Ç2Õ2×2â2â2õ2333Ò(ÐîÓØOgÎhÎhæhæhñhüh ii i2i8iKiQi]iqiqi…i•i£i©i¼iÂi#jÔ"OgÕ ƒ¤ŽAŽA¦A®AµA¿AÅAÐAàAèAíAøAøABBB#B+B;BBBJBRBZB_BjBjBxBxBŽBÖ+ƒ¤× -,m>í>íBíFíaíiíyí„í“ížíÂíÖíÖíãíãíôíöíîî#î.î9îHîHîPînîžî¥î¥î­î­î­îÚîãîñîýî#ï%ï-ï/ï/ï/ï/ï/ï8ïJï]ïfïnïpï€ï€ï€ï€ï�ï�ï�ï�ïªïÆïßïßïõïþïðð!ð9ðFðJðNðSðbðnð‡ð�ðœðªð¾ðÇðÏðÚðîðððñññ$ñ1ñ=ñRñmñmñmñ|ñ’ñ©ñ¿ñÕñ×ñ×ñ×ñíñïñïñóñõñõñþñò ò ò òòò%òRò[ò_òcòhòwò…ò‘òšòšò°ò»òØòó ó ó ó)ó>óMóYódóxóŽóªóºóÃóÇóÇóÔóáóåóòóôô ô?ôIôIôMôXôsôsô…ô”ôªôÁô×ôíôíôòôòôõõ)õ<õRõhõqõqõvõvõvõŒõ‘õ‘õ‘õŸõµõËõËõËõäõïõûõö*öTö`övö‰ö�ö¨ö¾öÉöÙöëö÷÷(÷(÷-÷:÷G÷_÷l÷p÷t÷v÷v÷v÷v÷�÷Œ÷Œ÷™÷¦÷ª÷¹÷Ð÷Ð÷Õ÷Õ÷ý÷ø*ø@øEøEønø„øšø°ø¹ø¹ø¾ø¾ø¾øÔøÙøÙøÙøëøùùùù0ù;ùGù]ùvù�ù‘ù£ù¿ùÕùàùàùàùåùïùúú,ú>úbúrú„úˆú•ú•ú•úŸú¦ú»úÄúÒúãúãúúúúúû ûCûUûZû�ÿØK,m -  - - - - - - - - - - -    - - - Ù`g�&j&j@jUjUjijojjjŠj˜j¤j¸jÃjÓjÓjçjíjójùjùjkk$k-k3k3kGkMkbkqkyk‡kŽk›kíkÚ3g�ÛxÕ!>Y>YTYbYuY�Y‘Y–Y«Y²Y¸YÀYÆYÔYêYøYÿYZZ"Z9ZFZ\ZoZvZ‰Z—ZœZ¤ZµZºZÕZÞZíZõZ[ [ [$[C[H[S[e[p[y[[Š[Ž[—[Ÿ[â[Ä[÷[,\\A\D\I\U\`\k\]ÜVÕ!ݼšöö )AS\bfjl„–£©­±³·»»áåëëòò)<OU`kuy|ƒ‰�“¤ª¯¶¶ÃÅÙÛââïñ**BNk�©®ÅÊØìñ÷%28<<OUUhj€…‡�¢¢¢°¶¹¼Ïçùü*8>ITTYYfuu{‰�«±´·¾ÎÙÙÞÞëúú"069<CCJQQ^mmx†‘—¢­­ÁÁÛèóý   * B G G p ƒ Š – – ¯ Æ Æ ä æ þ $ -/ -Q -d -‹ -� -� -š -¼ -¼ -¼ -Õ -ã -ñ -  Õ Þ輚ßPŽÕWW.W5W>WFW`W`WiWkW{W{W}W—W¡W£W¥WµWµWµWµW¹WÂWÊWÔWÞWâWâWôWXXX X X.X.X=XBXGX[XjXjXlXvXXˆX�X•X±X¸X¿XÆXÔXÝXY Y YYYY$Y'Y7YàQŽÕá8-Qö4ö4ü4555"5&5*5*51585<5D5H5H5O5V5Z5b5f5f5m5t5x5€5„5„5‹5’5–5ž5¢5¥5©5â.-Qã`/8^>^>r>Æ>·>>}>Ú>â>ä/8åØ!]]$]+]+]+]X]X]f]f]f]v]]†]�]–]–]ž]¦]Â]Ï]Û]ã]ã]î]^^^#^+^4^9^9^L^W^`^k^p^p^€^…^…^…^…^š^Ÿ^²^¸^¸^Ò^æ^æ^ë^ë^û^___ ____%_,_,_;_A_N_U_X_o_o_w_†_‘_˜_š_®_¹_À_Å_Ê_Ê_Ê_Ê_ß_ä_ó_ú_ú_`(`(`-`-`5`D`K`P`d`k`p`p`|`Ž`Ž`¢`±`Ä`È`×`á`è`ð`÷`a"a'a6a6aMaTaTagaiapaƒa…aŒa›a§a®aÄaËa×aéabbbbbb)b=bMbUbWbkb€b‡b—b¤bÅbÌbØbccc c ccc!c%c0c7c>cTcYcYcicrczcccŽc“c§c¶cÅcÐcÛcécïcõcûcd ddd*d6dBdUdldnd{d†dˆd”d½dÃdÉdÏdØdØdéd ee$e0eEeZeZegelele€e†eˆeˆeˆeˆeffæ!     ç9ffff†f†fšf f¬fÀfÀfÔfÚfåfìfüf ggg"g(g/g:gHgUgegsg‚g‚gÁgè*9épXcÖ5Ö5à5à5ù566 6 66êXcë˜ .q.q8qBqLq^qcqiquqwqwq‹q‹q‹q�q½qì í�¼¦¦´´ËÕÞàç÷**--N[]v}�� ïî)�¼ï@ nìnìwì‹ì�ìð ñ@ÎìÎì×ìöìûìòó˜,þìþìííí&í-í7í7í=íô,õ@ FìFìTìhìnìö ÷@–ì–ì¤ìÃìÉìøù˜m�žÿžÿ®ÿ®ÿÅÿÔÿØÿæÿìÿûÿûÿ &-?jpuy‰‰‰¡£®ÏÜÞ÷û !)<¥ú:m�û€ œ ww4w?wTwTwYw\w`wewlwlwyw‚wˆw�w¤w¤w½wÆwÍwâwèwôwx xxxx)xæ>? ???$?*?8???o?…?’? ?®?É?Ï?Û?ß?í? @@%@'@.@.@<@B@B@T@þ/8]ÿ¨M¾q¾qÔqÛqâqéqðqûqrrr'r2rBrZr`rkryr‡r’r¸rÒrÒrßrîrþrss sss"s-s8s?sRsXsfsns„s�s•s›sÏs<MÀ– îkîklll%l%l9l?lKlVlblmlyl…l™l°lÃlÚlÚlñlmmmm0m6mKmcmmmxm~m‰m—mœm¦m°mºmÁmÇmÓm×mßmâmåmømþmnnn n)n)nJnTn`ndnhnknqnsn€n€n�n•n¡n§n·n·nÄnÈnÎnÓnØnßnânønønýnoo)o9o9oMoSoboeoyo�o�o´oÎoÙoëoîoóoúo p p7p=pApRpapsp)q– �MœÖsÖsðs÷st't1t>t>tCtNtZtetetrttt‰tŒtŒtštªtºtÄtËtËtàtõtõt u'u4uCuPu^uuuuu�u�u�u«uµu¼u¼uÑuæuæuúuvv%v+v>v>vDvDvQvSvhvkvyv�v�vªv·vÇvwYMœ(¤ŽBŽB°B»B¾BÆBÉBÉBÙBæBæBíBôBûBCCCCC"C@CGCJCRCZC_CkCqC�C–C™C¡C©C®C®CµC»CÎCÔCÚCãCåCìCìCõCÿCD DDDDD+DBDEDTD`DoDoDoDoDtDtDˆDŽD¡DÀDÔDêDñDÿD EEEEE,E5EDEUEbEbEbEvEŠEšE�E-Fl¤(.Ð$$8$?$T$^$^$m$x$x$¦$·$À$À$Ï$Ï$Ù$Ù$ä$%%%%% %4%A%A%P%W%j%p%Ž%›%�%¶%¼%Ç%×%é%ò%ù%þ%& &2&7&E&N&N&U&U&d&{&{&Š&�&¦&°&·&¼&Ç&Í&Õ&û&' '''*'9'I'N'V'b'p'p'‡'’'¡'±'±'Å'Ë'Ô'Ô'Ô'ã'é'ø'(("(4(C(K(V(j(u(‡(š(¥(¸(Ù(ì(ð(ü(),),)@)F)Q)])m)})‚)‹)‹)�)¡)­)Á)Ý)Ý)ñ)÷)***.*@*F*F*F*U*[*`*f*f*f*u*{*€*†*†*Š*P2¬.Ð ¸ š.Ö Ö ð û  # # # # 0 0 L c i r r r  ‡ Ÿ ¥ ® ® ® » Ê Ö ó       , 4 < D P m | ‹ � – Ÿ Ÿ Ÿ Ÿ ¬ Á Ç Ð Ð ý  -'19I]]mm�‡¯¸¸ÍØØêöü,8<N`hoŠ˜˜˜¥Á¬ÒÉÜÞúæ..5;DLOfr†yŽ”���°µµÀÍÔÛÛèóù%06;BLLYdjov��Ž•œœ¿ßááþ%22EERdo~‡Œ³¼ÇÌÔÜì%%=RY_hh‹’—¥µÃÃÉÐÙÙÙìì$,IQVk~ƒ‹‹ ª¿ÏÏÏÏÛÛÛèèþ - -+6DOO_f…˜�µÊÏÏÞóóù!4@@MP[my„‰•¡®³³ÍÒÒñ   !5C[[amv{œ¥±·ÀÀÀÙïïïü!00HNYYYfloz€ƒ‹šš²¸ÃÃÃÔÚÝèîñó!4LRaayŠŠ—$ -žš. - -  ¨cÕ6646?6J6J6]6o6o6ƒ6Š6�6–6›6À6À6Í6Ð6Ù6Ù6í6ó6ø6 72767<7S7Z7h7n7z7ˆ7�7›7´7Â7Ë7Û7Ý7ä7é7ñ7888*8G8f8m8w8‹8‘8—8�8£8±8Ç8è8ü899'9/9>9K9X9f9t9�9›9 9®9Í9ß9ö9ÿ9:::::1:<:I:P:P:P:b:q:s:…:”:²:²:º:Ý:è:); |cÕ °Ü/.;.;U;U;h;};ˆ;¢;°;·;Æ;Í;Õ;ë;ó;ó;<<2<<<><U<e<n<t<y<€<‡<�<“<ž<©<¬<³<Í<Õ<ï<===== =2=A=L=T=T=k=„=ˆ=‘=˜=¶=¾=Å=É=Ò=×=é=>>>>>'>'>'>)>@>F>F>X>]Ü/à ?.F.FLFTFZFZFkFˆF–FœFœFœF©F«F¶FÀFÇFÓFàFæFðFðFûFGGG G/G5G:GBGKGQGYGhG}G‚G†GŒGŒG”GœG¢G¢G·GÃGÈGÐGÚGåGîGîGH -HH&H+H2HGHKHKHSHYHkHqH‡H�H�H«H¸H¸HÀHÌH×HÝHáHûHI -IIII*I?IDIHIOIUI[I[IcIgInItIzIzIzI¥I¥I¶I¶IÍIÚIÞIÞIâIðIJJ JJJJJ-J>J>JSJgJsJ�J…J—J›J¡J¾JÀJÆJ×JÙJåJ KKK@KKKQKWK]KfKmK{KŒK˜KœK®K²K¸KÕK×KÝKîKðKüK"L(L.L4L=LDLDLTLrL{L�L�L–L›L›L¢L©L»LÀLÀLÀLÚLßLýLM M&M.M9M\MbMhMtMˆM�M•M¡M¦M¦M±MµM¼MÎMÓMÛMàMëMñMùMþM N N%N2N2NENVNVNpNuNuN�N�NšN©N®N·N¼NÉNÐNÕNÕNàNäNëNýNO -OOO(O/O3O;OCOKO^OjOoO{O{O„O„OžOžO¸O¾OÃOÇOÌOÌOÌOÌOÒO×O×OúOPP/P4P4P4PAPAPAPFPUP[PqPqP”PÿSC? - -È9OÆgÆgÞgÞgògøghhh1h1hEhKhKhVhfhuhƒh�hËh 9OX.6� � ™ ž ¦ ¬ ¬ ± .6ˆ6D¸ ¸ È Ï á ä ä ë ë  - - - -6D` -hhr�‹›Ÿ¢¨ -8 -.¨¨¿ÆÐÖÙÙàåöûþ   ) 1 F Q c g i {  � � � ‹ . -.xiu¨@¨@¸@¿@Û@é@î@î@AAA!Aiuh  0BHNT €À~À~Ì~Ö~Ý~ä~ø~ - -  !˜P`�8�8 8 8»8Å8Ì8á8ñ8ý89)9"P`# oPP P b u ‹ Ð × ë ò ú  %-4;IWr€‰‰µÖå - /Lv…ªÃÅÌÓÓð5Lczzz‰–›››ª·¼¼ÂÇÇÍØÝÝãîóóù%**0;FKKQ\gllr}ˆ“˜˜ž¦««±¼ÄÉÉÏÚâççíø !)..4?JRTTZepxzz€‹–¡©««²²ÀÃÃËÚÚéûûþ *7F[`w‚���¼ÊØ6<ALjqvŠÄÉÐ×Þããêðõõ6<A`ggglov}„‰‰�–››²ÙÙç#***,,,2<DIQ[iqs{{€€€’š·ËËÐÕÙÝÝðþ.IQc‚Šœ»ÃÕÚôü-5Gfn€›£µµµÈÖðû ,7Ihs…¤¯ÁÆàëý'9Xcu”Ÿ±±±¼ÊÕØ #11Z~ƒ°µâç(-;;dˆ�º¿ìñ22;Na‚‹¬ºÈÖáåéý $9\{‰—ž¸ÌÚáû  ) . 5 5 d „ Ÿ ­ ­ Û  ; @ r w © © ½ Þ å ð ó !!#!'!B!F!]!a!a!{!�!–!›!©!º!Á!Ú!ý!""/"4"M"R"k"{"™" "º"Î"Î"#4#H#[#[#Š#³#Ç#Ì#Ì#×#$$J$^$c$j$j$”$™$Ã$ç$û$%%%%>%b%g%”%™%Æ%Ë%ø% & & &#&8&C&J&d&y&‰&‘&«&À&Å&Ì&æ&û&û&û&'''5'<'V'k'{'ƒ'�'²'·'¾'Ø'í'í'í'ÿ'ÿ'ÿ' -(&(;(M(k(}(‘(‘(–(–(–(¢(¾(Ó(Ø(Ø(Ø(â(þ())))#)?)T)Y)Y)`)c)})‘)¦)«)«)³)¶)Ð)ä)ù)þ)þ)**"*6*K*P*P*b*g*g*y*~*~*�*•*•*§*¬*¬*¾*Ã*Ã*Õ*Ú*Ú*ì*ñ*ñ*++++ + +1+6+6+H+M+M+_+d+d+v+{+{+~+¼+Ñ+Ñ+ã+ã+ã+î+ -, ,$,$,$,0,L,a,f,f,f,p,Œ,¡,¦,¦,¦,±,Í,â,ç,ç,ù,þ,þ,---'-,-,->-C-C-U-Z-Z-l-q-q-ƒ-ˆ-ˆ-š-Ÿ-Ÿ-±-¶-¶-È-Í-Í-ß-ä-ä-ö-û-û- ....S.h.h.h.r.r.€.Ž.Ÿ.­.».Ì.è.ù.///D/`/p/‡/˜/¦/­/�8$ëoP%˜`p0909B9D9K9K9f9p9v9‹9˜9›9§9Ô9&`p'Ð8o@ @ N U X X c n   Š • • ™ ž ž ² ¶ ¿ ¿ Â Ø Ü á í ô     " $ = I (A8o)P?FTT -TT,T9TVT*?F+HFLVTVTdT}T„T¤T,FL \ No newline at end of file diff --git a/SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP b/SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP deleted file mode 100644 index e606cb9..0000000 --- a/SparrowOS/Demo/AcctExample/Adam3bPkgs.CPP +++ /dev/null @@ -1,9 +0,0 @@ -#include "/SparrowOS/Accts/Adam3bPkgs" - -#include "/SparrowOS/Apps/TimeClock/Load.CPP.Z" -#include "/SparrowOS/Apps/MusicOrgan/Load.CPP.Z" -Cd("HOME");; -#include "/SparrowOS/Accts/TS/TSAdam" -#include "/SparrowOS/Accts/TS/TSDistribute" -#include "/SparrowOS/Demo/WebLogExample/WebLogRep.CPP.Z" -Cd("HOME");; diff --git a/SparrowOS/Demo/AcctExample/TAD/Registry.CPP b/SparrowOS/Demo/AcctExample/TAD/Registry.CPP deleted file mode 100644 index 9db1424..0000000 --- a/SparrowOS/Demo/AcctExample/TAD/Registry.CPP +++ /dev/null @@ -1,8 +0,0 @@ -$TR,"Adam"$ -$ID,2$$TR,"SparrowOS"$ -$ID,2$$TR,"SysMsgFlags"$ -$ID,2$sys_msg_flags[0]=0x255; -$ID,-2$$TR,"SysRegVer"$ -$ID,2$registry_version=1.020; -$ID,-2$$ID,-2$$ID,-2$$TR,"SparrowOS"$ -$ID,2$$ID,-2$ \ No newline at end of file diff --git a/SparrowOS/Demo/AcctExample/TSIDComputer.CPP b/SparrowOS/Demo/AcctExample/TSIDComputer.CPP deleted file mode 100644 index 3a84230..0000000 --- a/SparrowOS/Demo/AcctExample/TSIDComputer.CPP +++ /dev/null @@ -1,7 +0,0 @@ -U0 TSIDComputer() -{ - CMemE820 *m20=SYS_MEM_E820; - if (m20[11].base==0x100000000 && - m20[11].base(I64)+m20[11].len-1==0x33FFFFFFF) - ts_cid=CID_TAD8; -} TSIDComputer; diff --git a/SparrowOS/Demo/AcctExample/TSIDDft.CPP b/SparrowOS/Demo/AcctExample/TSIDDft.CPP deleted file mode 100644 index 3a84230..0000000 --- a/SparrowOS/Demo/AcctExample/TSIDDft.CPP +++ /dev/null @@ -1,7 +0,0 @@ -U0 TSIDComputer() -{ - CMemE820 *m20=SYS_MEM_E820; - if (m20[11].base==0x100000000 && - m20[11].base(I64)+m20[11].len-1==0x33FFFFFFF) - ts_cid=CID_TAD8; -} TSIDComputer; diff --git a/SparrowOS/Demo/Dsk/OrderedIO.CPP b/SparrowOS/Demo/Dsk/OrderedIO.CPP deleted file mode 100644 index 7d5a221..0000000 --- a/SparrowOS/Demo/Dsk/OrderedIO.CPP +++ /dev/null @@ -1,17 +0,0 @@ -/* -$WW,1$This gets a list of files, flattens the list from a tree into an array and sorts them by cluster num, to speed-up access time by avoiding moving the disk head around. -$WW,0$*/ - -U0 Main() -{ - I64 i,cnt=0; - CDirEntry *tempm=FilesFind("::/SparrowOS/*",1<cluster,a[i]->full_name; - CDirEntryDel(a[i]); - } - Free(a); -} - -Main; diff --git a/SparrowOS/Demo/Graphics/Blink.CPP b/SparrowOS/Demo/Graphics/Blink.CPP deleted file mode 100644 index eb17508..0000000 --- a/SparrowOS/Demo/Graphics/Blink.CPP +++ /dev/null @@ -1,34 +0,0 @@ -U0 DrawIt(CTask *task,CDC *dc) -{ //This routine is called by the window mgr task. - GrPrintF(dc,0,0*FONT_HEIGHT,"tNP:%4.3f tP:%4.3f",tNP,tP(task)); - - //default 2.5Hz - if (Blink) - GrPutS(dc,0,1*FONT_HEIGHT,"Blink"); - - //10 Hz - if (Blink(10)) - GrPutS(dc,0,2*FONT_HEIGHT,"Blink(10)"); - - //$LK,"tNP","MN:tNP"$ is a float var with time in seconds, function actually. - //You can skip arguments if they have defaults. - if (Blink(,tNP)) - GrPutS(dc,0,3*FONT_HEIGHT,"Blink(,tNP)"); - - //$LK,"tP","MN:tP"$ is a pausable function. - if (Blink(,tP(task))) - GrPutS(dc,0,4*FONT_HEIGHT,"Blink(,tP(task))"); -} - -U0 BlinkDemo() -{ - SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ - Fs->draw_it=&DrawIt; - DocClear; - NewLine(10); - "Pause and unpause task with $$FG,GREEN$$$$FG$$\n"; - PressAKey; - SettingsPop; -} - -BlinkDemo; diff --git a/SparrowOS/Demo/Graphics/Logo.CPP b/SparrowOS/Demo/Graphics/Logo.CPP deleted file mode 100644 index 50eeb24fad7fcded7d771e13e27e482190763d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33142 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 NJQM|n6Rj0yJpe6YWGDat diff --git a/SparrowOS/Demo/Graphics/SpritePlot.CPP b/SparrowOS/Demo/Graphics/SpritePlot.CPP deleted file mode 100644 index e9aa0bd71257ea368cbd3401df4ca3cd8195e136..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33670 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 diff --git a/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ b/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ deleted file mode 100644 index 8ca8c62..0000000 --- a/SparrowOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ +++ /dev/null @@ -1,13 +0,0 @@ - -// imports all syms from the Adam Task's hash table. -#include "::/SparrowOS/OSMain/StaticAdam.HPP.Z" - -//If you just want part of the symbolas -//#include "::/SparrowOS/OSMain/Static.HPP.Z" - -#exe {Cd("::/SparrowOS/Demo/OldSchool/Demo1");}; - -#include "MD1" -#include "MD2" -#include "MDMain" - diff --git a/SparrowOS/Demo/OldSchool/ReadMe.TXT b/SparrowOS/Demo/OldSchool/ReadMe.TXT deleted file mode 100644 index b05004c..0000000 --- a/SparrowOS/Demo/OldSchool/ReadMe.TXT +++ /dev/null @@ -1,11 +0,0 @@ -$WW,1$If you insist on doing statically compiled, old school, programs instead of just-in-time compiled programs, this directory tree has some examples. The main reason to do static programs is to make closed-source applications. Why not do it like the programs in $FG,2$/SparrowOS/Apps$FG$ instead? - -See $LK,"Scoping and Linkages","FI:::/SparrowOS/Doc/ImportExports.TXT.Z"$ for details on $FG,2$extern$FG$, $FG,2$import$FG$, $FG,2$_extern$FG$, $FG,2$_import$FG$, etc. - -$FG,5$Demo1$FG$ shows a multiple file static module. -$FG,4$ - -$FG,5$Demo2$FG$ shows a multiple module project. If you $FG,2$#include $FG$the $FG,4$MakeFile$FG$ you'll see a clear example of how syms are exported and imported by modules and bound to syms in task's hash tables. - - -$FG,4$ \ No newline at end of file diff --git a/SparrowOS/Demo/WebLogExample/access_090509.LOG b/SparrowOS/Demo/WebLogExample/access_090509.LOG deleted file mode 100644 index ebe5a8c..0000000 --- a/SparrowOS/Demo/WebLogExample/access_090509.LOG +++ /dev/null @@ -1,756 +0,0 @@ -62.102.171.181 - - [08/May/2009:01:00:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -145.223.59.115 - - [08/May/2009:01:01:22 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "http://images.google.co.nz/imgres?imgurl=http://www.globalfreeware.com/productImg/4/Stress-Relief-20/stressrelief.gif&imgrefurl=http://www.globalfreeware.com/Stress-Relief-20.html&usg=__TMaplGyjZXrI1U_ZuP5s3DFRM-A=&h=425&w=524&sz=24&hl=en&start=1&um=1&tbnid=U8Pyk5qaun6AtM:&tbnh=107&tbnw=132&prev=/images%3Fq%3Dstress%2Brelief%2Bhammer%26hl%3Den%26safe%3Doff%26sa%3DN%26um%3D1" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "www.sparrowos.com" -144.97.246.227 - - [08/May/2009:01:02:35 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)" "www.sparrowos.com" -144.97.246.227 - - [08/May/2009:01:02:35 -0700] "GET / HTTP/1.0" 200 81188 "-" "Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)" "www.sparrowos.com" -145.223.59.115 - - [08/May/2009:01:03:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://images.google.co.nz/imgres?imgurl=http://www.globalfreeware.com/productImg/4/Stress-Relief-20/stressrelief.gif&imgrefurl=http://www.globalfreeware.com/Stress-Relief-20.html&usg=__TMaplGyjZXrI1U_ZuP5s3DFRM-A=&h=425&w=524&sz=24&hl=en&start=1&um=1&tbnid=U8Pyk5qaun6AtM:&tbnh=107&tbnw=132&prev=/images%3Fq%3Dstress%2Brelief%2Bhammer%26hl%3Den%26safe%3Doff%26sa%3DN%26um%3D1" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:01:17:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:01:17:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:01:34:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -170.52.209.123 - - [08/May/2009:01:43:48 -0700] "GET / HTTP/1.1" 200 81188 "-" "PigFear/0.3.2" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:01:51:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -185.189.135.229 - - [08/May/2009:01:51:57 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 655360 "http://www.globalfreeware.com/DVDFab-Decrypter-3096-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:53:14 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:54:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/Windows-Live-OneCare-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:54:47 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/Windows-Live-OneCare-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:55:34 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:56:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:56:28 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/Windows-Live-OneCare-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:56:50 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.108.194.246 - - [08/May/2009:01:57:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:02:00:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -135.94.221.108 - - [08/May/2009:02:10:18 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.94.221.108 - - [08/May/2009:02:10:18 -0700] "GET / HTTP/1.1" 200 81188 "http://fileforum.betanews.com/detail/SparrowOS/1183618683/1" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.94.221.108 - - [08/May/2009:02:10:19 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.94.221.108 - - [08/May/2009:02:10:20 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "contype" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:02:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.23.86 - - [08/May/2009:02:19:17 -0700] "GET /contact.html HTTP/1.0" 200 5360 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "sparrowos.com" -11.152.238.13 - - [08/May/2009:02:23:01 -0700] "GET /v505.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -60.101.87.180 - - [08/May/2009:02:27:48 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:02:34:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -6.9.141.177 - - [08/May/2009:02:36:07 -0700] "GET / HTTP/1.0" 200 81188 "http://www.sparrowos.com" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061011 Fedora/1.5.0.7-7.fc6 Firefox/1.5.0.7" "www.sparrowos.com" -78.228.16.235 - - [08/May/2009:02:48:23 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; msn OptimizedIE8;ENMY)" "www.sparrowos.com" -78.228.16.235 - - [08/May/2009:02:49:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 233964 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; msn OptimizedIE8;ENMY)" "www.sparrowos.com" -78.228.16.235 - - [08/May/2009:02:49:51 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 589824 "http://www.globalfreeware.com/AutoClick-21-download.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; msn OptimizedIE8;ENMY)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:02:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.31 - - [08/May/2009:03:00:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:14:42 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.co.in/search?hl=en&ei=yQUEStuJJZKG6AO82PWSAw&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=free+full+version+operating+system&spell=1" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:14:49 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:14:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/11.0.5721.5145" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:16:35 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 917504 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:16:37 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:16:41 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -116.73.146.41 - - [08/May/2009:03:16:42 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 851968 "-" "NSPlayer/11.0.5721.5145 WMFSDK/11.0" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:03:17:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -121.79.92.147 - - [08/May/2009:03:21:47 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&q=64+bit+operating+systems+open+source&btnG=Search" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -121.79.92.147 - - [08/May/2009:03:21:47 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -121.79.92.147 - - [08/May/2009:03:21:50 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -91.118.116.74 - - [08/May/2009:03:22:16 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -91.118.116.74 - - [08/May/2009:03:22:17 -0700] "GET /v505.html HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -121.79.92.147 - - [08/May/2009:03:22:30 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -121.79.92.147 - - [08/May/2009:03:22:30 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 4653056 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -121.79.92.147 - - [08/May/2009:03:22:30 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 4325376 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:03:23:01 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -91.118.116.222 - - [08/May/2009:03:31:42 -0700] "GET /ai.html HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -91.118.116.230 - - [08/May/2009:03:32:10 -0700] "GET /demo6.html HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -91.118.116.102 - - [08/May/2009:03:32:51 -0700] "GET /demo1.html HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -91.118.116.102 - - [08/May/2009:03:33:16 -0700] "GET /v500.html HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:03:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:03:51:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:04:00:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:07:32 -0700] "GET / HTTP/1.1" 304 - "http://www.google.ca/search?rlz=1C1GGLS_enCA322CA324&sourceid=chrome&ie=UTF-8&q=64+bit+OS" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:07:32 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:08:25 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:03 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -103.153.198.216 - - [08/May/2009:04:12:04 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/530.8 (KHTML, like Gecko) Chrome/2.0.177.1 Safari/530.8" "www.sparrowos.com" -11.52.122.31 - - [08/May/2009:04:17:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:13 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.se/search?q=sparrowos&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:sv-SE:official&client=firefox-a" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:14 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:15 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:16 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:16 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:17 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:18 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:18 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:18 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:18 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:18 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:18:18 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:04:20:10 -0700] "GET /tiny.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:36 -0700] "GET /demo.html HTTP/1.1" 200 6327 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:37 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:37 -0700] "GET /media/InstallBoot.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:42 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:42 -0700] "GET /sitebuilder/images/SCRN0001a-640x480.png HTTP/1.1" 200 20313 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:42 -0700] "GET /sitebuilder/images/SCRN0000a-640x480.png HTTP/1.1" 200 15512 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:42 -0700] "GET /sitebuilder/images/SCRN0002a-640x480.png HTTP/1.1" 200 11969 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:42 -0700] "GET /images/Promises.jpg HTTP/1.1" 200 76295 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:48 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:48 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:50 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -6.172.180.63 - - [08/May/2009:04:20:57 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -164.255.79.253 - - [08/May/2009:04:27:13 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.249.155.15 - - [08/May/2009:04:30:22 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/OpenOfficeorg-241-Final-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB5)" "www.sparrowos.com" -135.249.155.15 - - [08/May/2009:04:31:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 343296 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB5)" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:04:34:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.110 - - [08/May/2009:04:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -218.189.172.88 - - [08/May/2009:04:59:54 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com.au/search?hl=en&q=is+it+possible+to+run+64+bit+iso+image+on+32+bit+os&btnG=Google+Search&meta=&aq=o&oq=" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.64 Safari/525.19" "www.sparrowos.com" -218.189.172.88 - - [08/May/2009:04:59:55 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.64 Safari/525.19" "www.sparrowos.com" -218.189.172.88 - - [08/May/2009:05:00:02 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.64 Safari/525.19" "www.sparrowos.com" -218.189.172.88 - - [08/May/2009:05:00:22 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 1048576 "-" "NSPlayer/12.00.7000.7000 WMFSDK/12.00.7000.7000" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:05:00:40 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:05:02:33 -0700] "GET /hdaudio.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:05:03:17 -0700] "GET /requirements.html HTTP/1.0" 200 3333 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:03:52 -0700] "GET /v505.html HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:03:53 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:03:56 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:03:56 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:03:56 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:03:57 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 131072 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:04:46 -0700] "GET /contact.html HTTP/1.1" 200 5360 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:05 -0700] "GET /requirements.html HTTP/1.1" 200 3333 "http://www.sparrowos.com/contact.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:05 -0700] "GET /images/Requirements.jpg HTTP/1.1" 200 29287 "http://www.sparrowos.com/requirements.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/requirements.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:55 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:57 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:57 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:58 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:59 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:05:59 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:06:00 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:06:00 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:07:38 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:07:39 -0700] "GET /sitebuilder/images/SCRN0000a-640x480.png HTTP/1.1" 200 15512 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:07:39 -0700] "GET /sitebuilder/images/SCRN0002a-640x480.png HTTP/1.1" 200 11969 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:07:39 -0700] "GET /sitebuilder/images/SCRN0001a-640x480.png HTTP/1.1" 200 20313 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:07:39 -0700] "GET /images/Promises.jpg HTTP/1.1" 200 76295 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:09:06 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:09:06 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -168.5.110.204 - - [08/May/2009:05:09:42 -0700] "GET / HTTP/1.1" 200 81188 "http://www.addfree100links.com/valuesite/sparrowos.com.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "sparrowos.com" -168.5.110.204 - - [08/May/2009:05:09:45 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "sparrowos.com" -168.5.110.204 - - [08/May/2009:05:09:50 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 720896 "-" "NSPlayer/9.0.0.3250" "sparrowos.com" -168.5.110.204 - - [08/May/2009:05:09:53 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 917504 "-" "NSPlayer/9.0.0.3250 WMFSDK/9.0" "sparrowos.com" -187.56.9.122 - - [08/May/2009:05:14:36 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:14:36 -0700] "GET /tanks.html HTTP/1.1" 200 3917 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -63.137.179.231 - - [08/May/2009:05:14:57 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009032803 Iceweasel/3.0.6 (Debian-3.0.6-1)" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:16:30 -0700] "GET /x-caliber.html HTTP/1.1" 200 3934 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:05:17:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:18:46 -0700] "GET /flightsim.html HTTP/1.1" 200 50990 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -198.166.26.96 - - [08/May/2009:05:18:48 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FDM; .NET CLR 2.0.50727)" "www.sparrowos.com" -198.166.26.96 - - [08/May/2009:05:19:04 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FDM; .NET CLR 2.0.50727)" "www.sparrowos.com" -198.166.26.96 - - [08/May/2009:05:19:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 206 196608 "http://www.sparrowos.com/" "FDM 1.x" "www.sparrowos.com" -198.166.26.96 - - [08/May/2009:05:19:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 524288 "http://www.sparrowos.com/" "FDM 1.x" "www.sparrowos.com" -198.166.26.96 - - [08/May/2009:05:19:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 206 327680 "http://www.sparrowos.com/" "FDM 1.x" "www.sparrowos.com" -198.166.26.96 - - [08/May/2009:05:19:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 206 393216 "http://www.sparrowos.com/" "FDM 1.x" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:20:43 -0700] "GET /fps.html HTTP/1.1" 200 33359 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:21:02 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:11 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:12 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -72.221.177.204 - - [08/May/2009:05:22:13 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [08/May/2009:05:22:13 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:14 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:14 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:15 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:15 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:15 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:15 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:15 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -193.90.161.57 - - [08/May/2009:05:22:20 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -72.221.177.204 - - [08/May/2009:05:22:22 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 3342336 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:22:54 -0700] "GET /span.html HTTP/1.1" 200 3929 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:24:57 -0700] "GET /squirt.html HTTP/1.1" 200 33028 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:05:25:47 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:05:27:35 -0700] "GET /organ.html HTTP/1.1" 200 3938 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:05:30:24 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mediapartners-Google" "www.sparrowos.com" -182.208.180.116 - - [08/May/2009:05:30:40 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:05:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -207.126.18.58 - - [08/May/2009:05:36:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 2949120 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17" "www.sparrowos.com" -207.126.18.58 - - [08/May/2009:05:36:38 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 655360 "http://www.globalfreeware.com/Any-Video-Converter-Free-Edition-259-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17" "www.sparrowos.com" -38.110.151.95 - - [08/May/2009:05:50:17 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:05:51:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:05:53:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -187.135.172.17 - - [08/May/2009:05:53:25 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/tb-exe-maker-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:06:00:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:06:06:54 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:06:07:28 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -182.208.180.116 - - [08/May/2009:06:09:44 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 200 0 "http://fileforum.betanews.com/sendfile/1183618683/1/1241785810.5c969ec306d9c2484851a1e4f778d66b66f7bae7/" "Download Master" "www.sparrowos.com" -93.25.53.214 - - [08/May/2009:06:14:51 -0700] "GET / HTTP/1.1" 200 81188 "http://cplus.about.com/b/2008/11/20/amazing-home-brew-operating-system.htm" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15" "sparrowos.com" -93.25.53.214 - - [08/May/2009:06:14:51 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15" "sparrowos.com" -93.25.53.214 - - [08/May/2009:06:14:52 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15" "sparrowos.com" -93.25.53.214 - - [08/May/2009:06:14:52 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 1114112 "http://sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15" "sparrowos.com" -93.25.53.214 - - [08/May/2009:06:15:22 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 17760256 "-" "QuickTime/7.6 (qtver=7.6;cpu=IA32;os=Mac 10.5.6)" "sparrowos.com" -62.102.171.122 - - [08/May/2009:06:17:42 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -153.212.221.166 - - [08/May/2009:06:19:32 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?q=bible+libraray+64+bit+downloads&rls=com.microsoft:en-us:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GZAZ_en" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; Media Center PC 5.1; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322; InfoPath.2)" "www.sparrowos.com" -153.212.221.166 - - [08/May/2009:06:19:32 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; Media Center PC 5.1; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322; InfoPath.2)" "www.sparrowos.com" -153.212.221.166 - - [08/May/2009:06:19:34 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "contype" "www.sparrowos.com" -153.212.221.166 - - [08/May/2009:06:19:47 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; Media Center PC 5.1; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322; InfoPath.2)" "www.sparrowos.com" -153.212.221.166 - - [08/May/2009:06:20:05 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; Media Center PC 5.1; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET CLR 1.1.4322; InfoPath.2)" "www.sparrowos.com" -153.212.221.166 - - [08/May/2009:06:20:07 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 720896 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -38.110.151.182 - - [08/May/2009:06:27:26 -0700] "GET /flightsim.html HTTP/1.0" 200 50990 "-" "Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)" "www.sparrowos.com" -38.110.151.211 - - [08/May/2009:06:27:29 -0700] "GET /squirt.html HTTP/1.0" 200 33028 "-" "Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)" "www.sparrowos.com" -38.110.151.123 - - [08/May/2009:06:27:38 -0700] "GET /tanks.html HTTP/1.0" 200 3917 "-" "Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)" "www.sparrowos.com" -38.110.151.243 - - [08/May/2009:06:27:50 -0700] "GET /fps.html HTTP/1.0" 200 33359 "-" "Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:06:34:35 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:06:51:36 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.158.64 - - [08/May/2009:06:55:57 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.158.64 - - [08/May/2009:06:55:58 -0700] "GET / HTTP/1.1" 200 81188 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -72.221.177.204 - - [08/May/2009:07:00:20 -0700] "GET / HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [08/May/2009:07:00:20 -0700] "GET /images/Header.JPG HTTP/1.1" 304 - "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -11.52.122.31 - - [08/May/2009:07:00:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -72.221.177.204 - - [08/May/2009:07:00:44 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 7471104 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:07:07:17 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -49.220.69.88 - - [08/May/2009:07:07:25 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.220.69.88 - - [08/May/2009:07:08:01 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 720896 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -60.101.246.214 - - [08/May/2009:07:13:11 -0700] "GET /screenshots.html HTTP/1.0" 304 - "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -184.73.196.4 - - [08/May/2009:07:13:43 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?source=ig&hl=en&rlz=1G1GGLQ_ENUS274&q=64+bit+operating+system&aq=f&oq=" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; DHSI60SP1001; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)" "www.sparrowos.com" -184.73.196.4 - - [08/May/2009:07:13:43 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; DHSI60SP1001; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)" "www.sparrowos.com" -184.73.196.4 - - [08/May/2009:07:14:43 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; DHSI60SP1001; .NET CLR 2.0.50727; InfoPath.1; .NET CLR 1.1.4322)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:07:17:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -187.56.9.122 - - [08/May/2009:07:19:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:07:28:34 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:07:34:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -196.248.155.240 - - [08/May/2009:07:39:10 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "http://www.globalfreeware.com/Freeware-PDF-Unlocker-v104-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)" "www.sparrowos.com" -182.208.180.116 - - [08/May/2009:07:49:24 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://fileforum.betanews.com/sendfile/1183618683/1/1241785810.5c969ec306d9c2484851a1e4f778d66b66f7bae7/" "Download Master" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:07:51:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.247.122.237 - - [08/May/2009:07:58:18 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://search.yahoo.com/search?p=download+c+source+files&ei=UTF-8&fr=yfp-t-501&fr2=rs-bottom&rs=0&xargs=0&pstart=1&b=11&xa=QbssPtUmwXWKlURq0.LOMA--,1241880988" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "sparrowos.com" -164.247.122.237 - - [08/May/2009:07:58:18 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "sparrowos.com" -164.247.122.237 - - [08/May/2009:07:58:22 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 1310720 "http://sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "sparrowos.com" -164.247.122.237 - - [08/May/2009:07:58:22 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "sparrowos.com" -164.247.122.237 - - [08/May/2009:07:58:23 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 786432 "-" "NSPlayer/11.0.5721.5251" "sparrowos.com" -164.247.122.237 - - [08/May/2009:07:58:25 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "sparrowos.com" -62.102.171.89 - - [08/May/2009:08:00:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -120.45.240.181 - - [08/May/2009:08:06:49 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5" "www.sparrowos.com" -11.192.96.157 - - [08/May/2009:08:12:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 589824 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:08:16:40 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -207.243.229.156 - - [08/May/2009:08:16:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 3211264 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; sk; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:08:17:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -222.87.133.184 - - [08/May/2009:08:19:11 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 1114112 "http://www.globalfreeware.com/NETEagle-550-download.html" "Mozilla/4.0 WebTV/2.6 (compatible; MSIE 4.0)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:08:34:35 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:08:34:39 -0700] "GET /logs/access_081111.log HTTP/1.0" 401 395 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:27 -0700] "GET / HTTP/1.0" 200 81188 "http://www.google.de/search?q=64+bit+opensource+kernel&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:29 -0700] "GET /images/Header.JPG HTTP/1.0" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:34 -0700] "GET /favicon.ico HTTP/1.0" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:36 -0700] "GET /screenshots.html HTTP/1.0" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:36 -0700] "GET /images/Collision.JPG HTTP/1.0" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:36 -0700] "GET /images/CTrace.JPG HTTP/1.0" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:36 -0700] "GET /images/Dollar.JPG HTTP/1.0" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:36 -0700] "GET /images/DotNet.JPG HTTP/1.0" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:38 -0700] "GET /images/Rocks.JPG HTTP/1.0" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:38 -0700] "GET /images/Tanks.JPG HTTP/1.0" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:39 -0700] "GET /images/FlightSim2.JPG HTTP/1.0" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:39 -0700] "GET /images/FPS.JPG HTTP/1.0" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:39 -0700] "GET /images/Span.JPG HTTP/1.0" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:40 -0700] "GET /images/Squirt.JPG HTTP/1.0" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:40 -0700] "GET /images/XCaliber.jpg HTTP/1.0" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:40 -0700] "GET /images/Organ.jpg HTTP/1.0" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:44:40 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.0" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -207.105.198.242 - - [08/May/2009:08:45:08 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 7995392 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -165.204.193.21 - - [08/May/2009:08:48:37 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5 (.NET CLR 3.5.30729)" "sparrowos.com" -62.102.171.89 - - [08/May/2009:08:51:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:08:52:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -20.8.46.247 - - [08/May/2009:08:53:18 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1310720 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0" "www.sparrowos.com" -60.101.246.22 - - [08/May/2009:08:56:50 -0700] "GET /codesamples.html HTTP/1.0" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:09:00:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:09:01:25 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -121.237.176.140 - - [08/May/2009:09:01:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MSN Optimized;US)" "www.sparrowos.com" -121.237.176.140 - - [08/May/2009:09:02:25 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/ChemBalance-Wizard-32--v10-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MSN Optimized;US)" "www.sparrowos.com" -14.132.234.25 - - [08/May/2009:09:08:10 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/DEV-C-4992-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -82.168.241.70 - - [08/May/2009:09:08:23 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://74.125.39.132/translate_c?hl=ru&ie=UTF-8&sl=en&tl=ru&u=http://fileforum.betanews.com/download/SparrowOS/1183618683/1&prev=_t&rurl=translate.google.ru&usg=ALkJrhj8elHUBMktUUuK-DaW0dLVkRJ9og" "Opera/9.64 (Windows NT 6.1; U; ru) Presto/2.1.1" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:09:17:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -218.2.43.143 - - [08/May/2009:09:19:00 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 589824 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -11.52.122.110 - - [08/May/2009:09:34:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -215.239.175.188 - - [08/May/2009:09:36:04 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.sk/search?hl=sk&q=PC+64bit+operating+system&btnG=H%C4%BEada%C5%A5+v+Google&meta=&aq=o&oq=" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -215.239.175.188 - - [08/May/2009:09:38:00 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -197.156.23.238 - - [08/May/2009:09:38:00 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/DirectX-90c-Redistributable-March-2009-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -215.239.175.188 - - [08/May/2009:09:38:06 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 458752 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -215.239.175.188 - - [08/May/2009:09:38:34 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:09:40:29 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -215.239.175.188 - - [08/May/2009:09:43:39 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -215.239.175.188 - - [08/May/2009:09:48:27 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -249.245.70.43 - - [08/May/2009:09:49:52 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:09:51:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -110.250.40.88 - - [08/May/2009:09:55:32 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; GoogleToolbar 5.0.2000.5344-big; Windows 6.0; MSIE 7.0.6001.18000)" "www.sparrowos.com" -110.250.40.88 - - [08/May/2009:09:55:32 -0700] "GET /favicon.gif HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; GoogleToolbar 5.0.2000.5344-big; Windows 6.0; MSIE 7.0.6001.18000)" "www.sparrowos.com" -25.128.22.53 - - [08/May/2009:10:00:03 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "S2Bot/1.0 (http://search2.net; bot[at]search2[dot]net)" "www.sparrowos.com" -25.128.22.53 - - [08/May/2009:10:00:05 -0700] "GET / HTTP/1.1" 200 81188 "-" "S2Bot/1.0 (http://search2.net; bot[at]search2[dot]net)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:10:00:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.246.36 - - [08/May/2009:10:10:26 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:10:14:53 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -46.138.235.214 - - [08/May/2009:10:15:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "www.sparrowos.com" -46.138.235.214 - - [08/May/2009:10:16:16 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 458752 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "www.sparrowos.com" -46.138.235.214 - - [08/May/2009:10:17:06 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:10:17:43 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.204.194.190 - - [08/May/2009:10:22:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; MSN 9.0;MSN 9.1;MSN 9.6; MSNbMSNI; MSNmen-us; MSNcIA)" "www.sparrowos.com" -46.138.235.214 - - [08/May/2009:10:22:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:10:29:21 -0700] "GET /v316.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:10:34:41 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -153.81.158.136 - - [08/May/2009:10:36:46 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; yie8)" "www.sparrowos.com" -153.81.158.136 - - [08/May/2009:10:37:14 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; yie8)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:10:38:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -153.81.158.136 - - [08/May/2009:10:38:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; yie8)" "www.sparrowos.com" -153.81.158.136 - - [08/May/2009:10:38:23 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; yie8)" "www.sparrowos.com" -110.250.40.88 - - [08/May/2009:10:48:59 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; GoogleToolbar 5.0.2000.5344-big; Windows 6.0; MSIE 7.0.6001.18000)" "www.sparrowos.com" -110.250.40.88 - - [08/May/2009:10:49:00 -0700] "GET /favicon.gif HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; GoogleToolbar 5.0.2000.5344-big; Windows 6.0; MSIE 7.0.6001.18000)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:10:51:36 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:11:00:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -103.171.143.79 - - [08/May/2009:11:07:26 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)" "www.sparrowos.com" -29.113.123.64 - - [08/May/2009:11:09:10 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.co.uk/search?q=64bit+file+browser+open+source&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB:official&client=firefox-a" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -29.113.123.64 - - [08/May/2009:11:09:11 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -29.113.123.64 - - [08/May/2009:11:09:11 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -29.113.123.64 - - [08/May/2009:11:09:12 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -29.113.123.64 - - [08/May/2009:11:09:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:11:17:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:11:21:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -39.2.212.39 - - [08/May/2009:11:22:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )" "www.sparrowos.com" -60.101.158.64 - - [08/May/2009:11:22:16 -0700] "GET /trouble.html HTTP/1.1" 200 25395 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -39.2.212.39 - - [08/May/2009:11:22:41 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) )" "www.sparrowos.com" -60.101.48.242 - - [08/May/2009:11:22:59 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.48.242 - - [08/May/2009:11:22:59 -0700] "GET /v505.html HTTP/1.1" 404 275 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:11:34:37 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:11:34:54 -0700] "GET /v503a.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:11:48:23 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -216.121.100.25 - - [08/May/2009:11:49:17 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.co.uk/search?q=free+cd+operating+systems&hl=en&start=10&sa=N" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -216.121.100.25 - - [08/May/2009:11:49:17 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -216.121.100.25 - - [08/May/2009:11:49:18 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -216.121.100.25 - - [08/May/2009:11:49:19 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -216.121.100.25 - - [08/May/2009:11:49:22 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:11:50:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -81.243.226.14 - - [08/May/2009:11:51:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -81.243.226.14 - - [08/May/2009:11:51:16 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/SynthFont-1081-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:11:51:35 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:52:00 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:38 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:38 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:39 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:39 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:39 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:39 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:40 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:40 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:40 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:40 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:41 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:41 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:41 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:41 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:42 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:43 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -82.163.185.189 - - [08/May/2009:11:56:46 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -91.129.12.96 - - [08/May/2009:11:59:56 -0700] "GET /index.html HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:12:00:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:12:17:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -177.155.101.153 - - [08/May/2009:12:18:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/528.8 (KHTML, like Gecko) Chrome/2.0.156.1 Safari/528.8" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:23 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.qr.cz/index.php?recordStart=7" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:23 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:23 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:24 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:25 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:25 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:27 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:27 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:28 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:29 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:29 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:30 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:31 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:32 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:32 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -240.128.6.132 - - [08/May/2009:12:25:40 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MAXTHON 2.0)" "www.sparrowos.com" -60.101.138.57 - - [08/May/2009:12:26:51 -0700] "GET /organ.html HTTP/1.1" 200 3938 "-" "WinHttp" "www.sparrowos.com" -166.138.98.250 - - [08/May/2009:12:27:21 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -166.138.98.250 - - [08/May/2009:12:27:22 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/custom?hl=en&safe=off&client=pub-3646272212055959&cof=FORID%3A1%3BGL%3A1%3BS%3Ahttp%3A%2F%2Fwww.googlelightoff.com%2F%3BL%3Ahttp%3A%2F%2Fwww.googlelightoff.com%2Flogo2.gif%3BLH%3A100%3BLW%3A490%3BLBGC%3A000000%3BLP%3A1%3BBGC%3A%23000000%3BT%3A%23a9a15c%3BLC%3A%23ffffff%3BVLC%3A%23fcf190%3BALC%3A%23caf192%3BGALT%3A%23F8DF0C%3B&q=os+64+bits" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -166.138.98.250 - - [08/May/2009:12:27:23 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -166.138.98.250 - - [08/May/2009:12:28:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 8192000 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -91.129.138.35 - - [08/May/2009:12:32:44 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )" "www.sparrowos.com" -91.129.138.35 - - [08/May/2009:12:32:44 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 512 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )" "www.sparrowos.com" -91.129.138.35 - - [08/May/2009:12:32:49 -0700] "HEAD /media/Demo1.wmv HTTP/1.1" 200 0 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )" "www.sparrowos.com" -69.246.169.16 - - [08/May/2009:12:33:18 -0700] "GET / HTTP/1.1" 200 81188 "http://www.cs.toronto.edu/~ad/news/item?id=116" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -69.246.169.16 - - [08/May/2009:12:33:18 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -69.246.169.16 - - [08/May/2009:12:33:19 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -69.246.169.16 - - [08/May/2009:12:33:20 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Safari5525.27.1 CFNetwork/422.15.2 Darwin/9.6.0 (i386) (MacPro1%2C1)" "www.sparrowos.com" -69.246.169.16 - - [08/May/2009:12:34:02 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "-" "QuickTime/7.6 (qtver=7.6;cpu=IA32;os=Mac 10.5.6)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:12:34:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -17.65.157.147 - - [08/May/2009:12:50:02 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 196608 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:12:51:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -240.67.254.238 - - [08/May/2009:12:52:16 -0700] "GET /files/SparrowOSCDV305.ISO HTTP/1.1" 401 395 "http://www.all-freeware.com/download/38114/the-sparrowos-operating-system.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - "" [08/May/2009:12:52:24 -0700] "GET /files/SparrowOSCDV305.ISO HTTP/1.1" 401 395 "http://www.all-freeware.com/download/38114/the-sparrowos-operating-system.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - - [08/May/2009:12:52:27 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - - [08/May/2009:12:52:39 -0700] "GET /files/SparrowOSCDV305.ISO HTTP/1.1" 401 395 "http://www.all-freeware.com/download/38114/the-sparrowos-operating-system.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - "" [08/May/2009:12:52:40 -0700] "GET /files/SparrowOSCDV305.ISO HTTP/1.1" 401 395 "http://www.all-freeware.com/download/38114/the-sparrowos-operating-system.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - admin [08/May/2009:12:52:51 -0700] "GET /files/SparrowOSCDV305.ISO HTTP/1.1" 401 395 "http://www.all-freeware.com/download/38114/the-sparrowos-operating-system.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - user [08/May/2009:12:53:06 -0700] "GET /files/SparrowOSCDV305.ISO HTTP/1.1" 401 395 "http://www.all-freeware.com/download/38114/the-sparrowos-operating-system.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -240.67.254.238 - - [08/May/2009:12:53:09 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; FunWebProducts; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; eSobiSubscriber 2.0.4.16; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:07 -0700] "GET / HTTP/1.1" 200 81188 "http://royal.pingdom.com/2008/09/26/10-amazingly-alternative-operating-systems-and-what-they-could-mean-for-the-future/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:07 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:09 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 1441792 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:12 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:13 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:13 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:13 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:13 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:13 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 458752 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:14 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.209.66.173 - - [08/May/2009:12:58:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:12:59:58 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:00:00 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:00:06 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:00:08 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Windows-Media-Player/11.0.5721.5260" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:00:11 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 458752 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:00:11 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 458752 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:13:00:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:13:01:51 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -33.86.198.199 - - [08/May/2009:13:02:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 1.1.4322; InfoPath.2; MS-RTC LM 8; .NET CLR 3.5.21022)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:34 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:40 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:40 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:41 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:41 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:41 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:42 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:43 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:43 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:43 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:02:43 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -94.48.187.36 - - [08/May/2009:13:03:12 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 489728 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:12:49 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:12:50 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:12:51 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:12:51 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -14.253.133.71 - - [08/May/2009:13:15:40 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.1)" "www.sparrowos.com" -14.253.133.71 - - [08/May/2009:13:16:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.1)" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:13:17:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:25:21 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:27:39 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -144.229.221.2 - - [08/May/2009:13:27:42 -0700] "GET /LTsrc.zip HTTP/1.1" 200 942074 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:13:34:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:13:46:29 -0700] "GET /files/?S=A HTTP/1.0" 401 395 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:13:51:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:13:55:48 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:14:00:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -79.228.189.199 - - [08/May/2009:14:02:02 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1)" "www.sparrowos.com" -79.228.189.199 - - [08/May/2009:14:05:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1)" "www.sparrowos.com" -79.228.189.199 - - [08/May/2009:14:08:06 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1)" "www.sparrowos.com" -70.17.204.237 - - [08/May/2009:14:09:41 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Butterfly/1.0; +http://labs.topsy.com/butterfly.html) Gecko/2009032608 Firefox/3.0.8" "www.sparrowos.com" -70.17.204.237 - - [08/May/2009:14:09:41 -0700] "GET /v502.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Butterfly/1.0; +http://labs.topsy.com/butterfly.html) Gecko/2009032608 Firefox/3.0.8" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:14:17:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -79.228.189.199 - - [08/May/2009:14:21:38 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "http://www.globalfreeware.com/Stress-Relief-20-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1)" "www.sparrowos.com" -79.228.189.199 - - [08/May/2009:14:23:41 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1)" "www.sparrowos.com" -79.228.189.199 - - [08/May/2009:14:24:40 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:14:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.96.79 - - [08/May/2009:14:46:09 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.96.79 - - [08/May/2009:14:46:09 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.96.79 - - [08/May/2009:14:46:09 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.96.79 - - [08/May/2009:14:46:10 -0700] "GET /index.html HTTP/1.1" 200 81188 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -106.236.2.182 - - [08/May/2009:14:47:36 -0700] "GET /V421.html HTTP/1.1" 404 275 "http://www.sparrowos.com/V421.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:14:51:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:39 -0700] "GET / HTTP/1.1" 200 81188 "http://royal.pingdom.com/2008/09/26/10-amazingly-alternative-operating-systems-and-what-they-could-mean-for-the-future/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:40 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:42 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:43 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:44 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "gvfs/1.2.2" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:44 -0700] "HEAD /media/Demo1.wmv HTTP/1.1" 200 0 "-" "gvfs/1.2.2" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:46 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:47 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "GStreamer souphttpsrc libsoup/2.26.1" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:54:49 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -93.208.231.231 - - [08/May/2009:14:57:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b4) Gecko/20090427 Fedora/3.5-0.20.beta4.fc11 Firefox/3.5b4" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:15:00:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -240.87.235.15 - - [08/May/2009:15:06:46 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -240.87.235.15 - - [08/May/2009:15:07:10 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 458752 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -240.87.235.15 - - [08/May/2009:15:07:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -70.174.129.224 - - [08/May/2009:15:16:59 -0700] "GET / HTTP/1.0" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:15:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -70.174.129.118 - - [08/May/2009:15:20:55 -0700] "GET /trouble.html HTTP/1.0" 200 25395 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -70.174.129.224 - - [08/May/2009:15:21:34 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -70.174.129.20 - - [08/May/2009:15:22:22 -0700] "GET /demo.html HTTP/1.0" 200 6327 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -70.174.129.224 - - [08/May/2009:15:22:24 -0700] "GET /requirements.html HTTP/1.0" 200 3333 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -18.146.50.156 - - [08/May/2009:15:22:50 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.171.044921875" "www.sparrowos.com" -70.174.129.224 - - [08/May/2009:15:23:01 -0700] "GET /detailedlinfo.html HTTP/1.0" 200 4005 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -70.174.129.20 - - [08/May/2009:15:23:23 -0700] "GET /contact.html HTTP/1.0" 200 5360 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -70.174.129.118 - - [08/May/2009:15:23:32 -0700] "GET /screenshots.html HTTP/1.0" 200 11591 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -70.174.129.118 - - [08/May/2009:15:23:51 -0700] "GET /index.html HTTP/1.0" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:25 -0700] "GET / HTTP/1.1" 200 81188 "http://filext.com/file-extension/iso" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:25 -0700] "GET /notified-PW_Notify_Time?aHR0cDovL2xvc2V0aG9zLmNvbS8= HTTP/1.1" 404 275 "http://filext.com/file-extension/iso" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:25 -0700] "GET /verify-PW_Notify_Time?aHR0cDovL2xvc2V0aG9zLmNvbS8= HTTP/1.1" 404 275 "http://filext.com/file-extension/iso" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:25 -0700] "GET / HTTP/1.1" 200 81188 "http://filext.com/file-extension/iso" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:26 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:29 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "sparrowos.com" -62.10.130.18 - - [08/May/2009:15:30:29 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 786432 "-" "contype" "sparrowos.com" -164.157.255.43 - - [08/May/2009:15:33:50 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -121.18.156.152 - - [08/May/2009:15:33:55 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -121.18.156.152 - - [08/May/2009:15:34:17 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:15:34:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.134.159.197 - - [08/May/2009:15:49:24 -0700] "GET / HTTP/1.1" 200 81188 "-" "FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)" "www.sparrowos.com" -91.118.116.74 - - [08/May/2009:15:50:36 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -91.118.116.74 - - [08/May/2009:15:50:36 -0700] "GET /demo4.html HTTP/1.1" 404 275 "-" "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:15:51:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -131.142.1.249 - - [08/May/2009:16:00:03 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:16:00:10 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.63 - - [08/May/2009:16:00:44 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -70.174.129.9 - - [08/May/2009:16:00:45 -0700] "GET /x-caliber.html HTTP/1.0" 200 3934 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)" "www.sparrowos.com" -144.215.114.126 - - [08/May/2009:16:14:32 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; tr; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:16:17:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -103.107.72.175 - - [08/May/2009:16:23:08 -0700] "GET / HTTP/1.1" 200 81188 "http://www.trivialsolutions.biz/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090507 Shiretoko/3.5b5pre" "www.sparrowos.com" -103.107.72.175 - - [08/May/2009:16:23:08 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090507 Shiretoko/3.5b5pre" "www.sparrowos.com" -103.107.72.175 - - [08/May/2009:16:23:09 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090507 Shiretoko/3.5b5pre" "www.sparrowos.com" -103.107.72.175 - - [08/May/2009:16:23:12 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090507 Shiretoko/3.5b5pre" "www.sparrowos.com" -6.9.141.177 - - [08/May/2009:16:32:45 -0700] "GET / HTTP/1.0" 200 81188 "http://www.sparrowos.com" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061011 Fedora/1.5.0.7-7.fc6 Firefox/1.5.0.7" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:16:34:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:16:45:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mediapartners-Google" "www.sparrowos.com" -219.146.76.227 - - [08/May/2009:16:45:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -219.146.76.227 - - [08/May/2009:16:45:52 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 458752 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -178.221.180.116 - - [08/May/2009:16:50:59 -0700] "GET / HTTP/1.1" 200 81188 "http://www.freeware-guide.com/dir/softdev/codeutil/SparrowOS.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -178.221.180.116 - - [08/May/2009:16:51:00 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -178.221.180.116 - - [08/May/2009:16:51:13 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3703" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:16:51:21 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -78.196.98.232 - - [08/May/2009:16:54:31 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)" "www.sparrowos.com" -178.221.180.116 - - [08/May/2009:16:57:03 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 1048576 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -178.221.180.116 - - [08/May/2009:16:57:04 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 983040 "-" "NSPlayer/10.0.0.3703 WMFSDK/10.0" "www.sparrowos.com" -196.89.79.169 - - [08/May/2009:16:57:42 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?source=ig&hl=en&rlz=&q=64+bit+operating+system&btnG=Google+Search&aq=f&oq=" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -196.89.79.169 - - [08/May/2009:16:57:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -196.89.79.169 - - [08/May/2009:16:57:44 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:17:00:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -196.89.79.169 - - [08/May/2009:17:01:21 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:17:17:35 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [08/May/2009:17:22:28 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.125.4150390625" "www.sparrowos.com" -60.101.246.236 - - [08/May/2009:17:26:45 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -26.151.210.221 - - [08/May/2009:17:30:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/Xoology-Coda-v251-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19" "www.sparrowos.com" -186.23.33.72 - - [08/May/2009:17:33:52 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GoogleT5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:17:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.35.104.25 - - [08/May/2009:17:35:14 -0700] "GET / HTTP/1.1" 200 81188 "http://cplus.about.com/b/2008/11/20/amazing-home-brew-operating-system.htm" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; FunWebProducts; GTB6; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.1; yie8)" "sparrowos.com" -11.35.104.25 - - [08/May/2009:17:35:14 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; FunWebProducts; GTB6; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.1; yie8)" "sparrowos.com" -11.35.104.25 - - [08/May/2009:17:35:17 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 786432 "-" "contype" "sparrowos.com" -11.35.104.25 - - [08/May/2009:17:35:18 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; FunWebProducts; GTB6; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.1; yie8)" "sparrowos.com" -173.186.151.229 - - [08/May/2009:17:49:48 -0700] "HEAD /media/X-Caliber.wmv HTTP/1.1" 404 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -173.186.151.229 - - [08/May/2009:17:51:00 -0700] "HEAD /media/MultiCore.wmv HTTP/1.1" 404 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -11.52.122.89 - - [08/May/2009:17:51:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -173.186.151.229 - - [08/May/2009:17:51:32 -0700] "HEAD /media/Tanks.wmv HTTP/1.1" 200 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -173.186.151.229 - - [08/May/2009:17:55:48 -0700] "HEAD /media/Demo2c.wmv HTTP/1.1" 404 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -173.186.151.229 - - [08/May/2009:17:57:42 -0700] "HEAD /media/Demo1.wmv HTTP/1.1" 200 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -173.186.151.229 - - [08/May/2009:17:58:59 -0700] "HEAD /media/BirdLand.wmv HTTP/1.1" 404 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -62.102.171.88 - - [08/May/2009:18:00:33 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -107.8.88.161 - - [08/May/2009:18:00:46 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?q=64-bit+operating+systems&rls=com.microsoft:en-us:IE-Address&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GPCK_enUS320" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -107.8.88.161 - - [08/May/2009:18:00:46 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -107.8.88.161 - - [08/May/2009:18:00:47 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "contype" "www.sparrowos.com" -107.8.88.161 - - [08/May/2009:18:00:59 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:18:03:37 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -107.8.88.161 - - [08/May/2009:18:05:31 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC1; Media Center PC 5.0; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -39.116.240.60 - - [08/May/2009:18:06:35 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Privoxy/1.0" "www.sparrowos.com" -39.116.240.60 - - [08/May/2009:18:06:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Privoxy/1.0" "www.sparrowos.com" -18.146.50.156 - - [08/May/2009:18:06:43 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.195.73974609375" "www.sparrowos.com" -39.116.240.60 - - [08/May/2009:18:06:44 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 589824 "http://www.sparrowos.com/" "Privoxy/1.0" "www.sparrowos.com" -70.172.192.163 - - [08/May/2009:18:06:48 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (compatible; DotBot/1.1; http://www.dotnetdotcom.org/, crawler@dotnetdotcom.org)" "www.sparrowos.com" -184.107.188.123 - - [08/May/2009:18:08:09 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Privoxy/1.0" "www.sparrowos.com" -184.107.188.123 - - [08/May/2009:18:08:11 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Privoxy/1.0" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:18:08:14 -0700] "GET /flightsim.html HTTP/1.0" 200 50990 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:18:08:19 -0700] "GET /media/Flightsim.wmv HTTP/1.0" 200 8192000 "http://www.sparrowos.com/flightsim.html" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -184.107.188.123 - - [08/May/2009:18:13:48 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Privoxy/1.0" "www.sparrowos.com" -47.10.36.248 - - [08/May/2009:18:16:55 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Privoxy/1.0" "www.sparrowos.com" -11.52.122.31 - - [08/May/2009:18:17:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:23:57 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.14) Gecko/20080404 (FoxPlus) Firefox/2.0.0.14" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:23:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:23:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3646" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:23:59 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:23:59 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://youdao.com/search" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:23:59 -0700] "HEAD /media/Demo1.wmv HTTP/1.1" 200 0 "-" "Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )" "www.sparrowos.com" -91.129.138.143 - - [08/May/2009:18:24:00 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 128 "-" "NSPlayer/10.0.0.3646" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:18:34:33 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -219.166.151.194 - - [08/May/2009:18:36:33 -0700] "GET /v422.html HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) NetNewsWire/3.1.7" "www.sparrowos.com" -219.166.151.194 - - [08/May/2009:18:36:33 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/v422.html" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) NetNewsWire/3.1.7" "www.sparrowos.com" -219.166.151.194 - - [08/May/2009:18:36:50 -0700] "GET /v422.html HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -219.166.151.194 - - [08/May/2009:18:36:50 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/v422.html" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -70.141.45.246 - - [08/May/2009:18:42:43 -0700] "GET / HTTP/1.0" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FunWebProducts; .NET CLR 1.1.4322; SpamBlockerUtility 4.7.7; PeoplePal 3.0)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:18:47:53 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Googlebot-Image/1.0" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:18:47:53 -0700] "GET /images/DotNet.JPG HTTP/1.1" 304 - "-" "Googlebot-Image/1.0" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:18:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:18:53:45 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" "www.sparrowos.com" -70.17.204.237 - - [08/May/2009:18:57:44 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Butterfly/1.0; +http://labs.topsy.com/butterfly.html) Gecko/2009032608 Firefox/3.0.8" "www.sparrowos.com" -70.17.204.237 - - [08/May/2009:18:57:44 -0700] "GET /v501.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Butterfly/1.0; +http://labs.topsy.com/butterfly.html) Gecko/2009032608 Firefox/3.0.8" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:18:57:47 -0700] "GET /index.html HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:19:00:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:19:09:18 -0700] "GET /index.html HTTP/1.0" 200 81188 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:19:09:19 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -18.146.50.156 - - [08/May/2009:19:09:49 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.179.437255859375" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:19:17:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:19:22:01 -0700] "GET /sitebuilder/?N=A HTTP/1.0" 200 796 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:19:34:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -14.103.37.125 - - [08/May/2009:19:38:24 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "http://www.globalfreeware.com/Game-Maker-61-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" "www.sparrowos.com" -14.103.37.125 - - [08/May/2009:19:38:51 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" "www.sparrowos.com" -14.103.37.125 - - [08/May/2009:19:45:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" "www.sparrowos.com" -62.102.171.88 - - [08/May/2009:19:51:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [08/May/2009:20:00:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -166.252.70.53 - - [08/May/2009:20:06:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -166.252.70.53 - - [08/May/2009:20:06:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -166.252.70.53 - - [08/May/2009:20:06:35 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "http://www.globalfreeware.com/Youtube-Grabber-1001-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -98.178.39.86 - - [08/May/2009:20:07:17 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -146.145.50.214 - - [08/May/2009:20:08:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.freewarefiles.com/downloads_counter.php?programid=26778" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -218.172.171.54 - - [08/May/2009:20:09:33 -0700] "GET /media/Demo1.wmv HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:20:17:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:20:26:42 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -153.245.142.153 - - [08/May/2009:20:32:03 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -63.151.158.31 - - [08/May/2009:20:34:25 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?hl=en&client=safari&rls=en-us&q=64+bit+operating+systems&btnG=Search" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -63.151.158.31 - - [08/May/2009:20:34:25 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:20:34:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -63.151.158.31 - - [08/May/2009:20:34:26 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -63.151.158.31 - - [08/May/2009:20:35:07 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 40173568 "-" "QuickTime/7.6 (qtver=7.6;cpu=IA32;os=Mac 10.5.6)" "www.sparrowos.com" -63.151.158.31 - - [08/May/2009:20:36:08 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 233913 "-" "Safari5525.27.1 CFNetwork/422.15.2 Darwin/9.6.0 (i386) (MacBook2%2C1)" "www.sparrowos.com" -39.44.79.61 - - [08/May/2009:20:39:11 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -93.87.95.22 - - [08/May/2009:20:40:38 -0700] "GET / HTTP/1.0" 200 81188 "http://fileforum.betanews.com/detail/SparrowOS/1183618683/1" "Opera/9.64 (Windows NT 6.0; U; en) Presto/2.1.1" "www.sparrowos.com" -93.87.95.22 - - [08/May/2009:20:40:39 -0700] "GET /images/Header.JPG HTTP/1.0" 200 2982 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 6.0; U; en) Presto/2.1.1" "www.sparrowos.com" -93.87.95.22 - - [08/May/2009:20:40:39 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 196608 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 6.0; U; en) Presto/2.1.1" "www.sparrowos.com" -18.146.50.156 - - [08/May/2009:20:49:57 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.194.415283203125" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:20:51:33 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -69.51.251.169 - - [08/May/2009:20:53:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:21:00:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -120.52.74.143 - - [08/May/2009:21:12:21 -0700] "GET / HTTP/1.1" 200 81188 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)" "www.sparrowos.com" -60.101.96.79 - - [08/May/2009:21:12:43 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.96.79 - - [08/May/2009:21:12:43 -0700] "GET /instruct.html HTTP/1.1" 404 275 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:21:17:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -72.206.233.51 - - [08/May/2009:21:28:23 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&q=operating.system++64.bit&btnG=Search" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" "www.sparrowos.com" -72.206.233.51 - - [08/May/2009:21:28:23 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" "www.sparrowos.com" -72.206.233.51 - - [08/May/2009:21:29:06 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" "www.sparrowos.com" -72.206.233.51 - - [08/May/2009:21:29:06 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" "www.sparrowos.com" -72.206.233.51 - - [08/May/2009:21:29:09 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" "www.sparrowos.com" -46.61.70.0 - - [08/May/2009:21:29:25 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -72.206.233.51 - - [08/May/2009:21:29:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8" "www.sparrowos.com" -46.61.70.0 - - [08/May/2009:21:30:13 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -46.61.70.0 - - [08/May/2009:21:30:27 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -46.61.70.0 - - [08/May/2009:21:30:37 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262144 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SBUA)" "www.sparrowos.com" -166.228.19.250 - - [08/May/2009:21:33:13 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -166.228.19.250 - - [08/May/2009:21:33:49 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 524288 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:21:34:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:14 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.freeware-guide.com/dir/softdev/codeutil/SparrowOS.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:14 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:15 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:15 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:15 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:16 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:16 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:17 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:17 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:18 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:18 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:18 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:18 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:19 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -240.134.179.63 - - [08/May/2009:21:35:19 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -218.172.171.54 - - [08/May/2009:21:46:50 -0700] "GET /images/DotNet.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -218.172.171.54 - - [08/May/2009:21:47:06 -0700] "GET /images/CTrace.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -218.172.171.54 - - [08/May/2009:21:47:07 -0700] "GET /images/Dollar.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -218.172.171.54 - - [08/May/2009:21:47:13 -0700] "GET /images/Collision.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:21:51:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -220.232.54.158 - - [08/May/2009:21:59:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 589824 "http://www.globalfreeware.com/PHP-525-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -62.102.171.31 - - [08/May/2009:22:00:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.147 - - [08/May/2009:22:17:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -106.236.2.26 - - [08/May/2009:22:22:37 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -106.236.2.26 - - [08/May/2009:22:25:19 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -106.236.2.182 - - [08/May/2009:22:28:23 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -78.172.103.129 - - [08/May/2009:22:31:27 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -62.102.171.122 - - [08/May/2009:22:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.246.243 - - [08/May/2009:22:41:07 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:22:43:17 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -20.190.244.68 - - [08/May/2009:22:48:39 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.brothersoft.com/the-sparrowos-operating-system-download-67591.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; GTB6)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:22:51:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [08/May/2009:22:53:57 -0700] "GET /index.html HTTP/1.1" 200 81188 "-" "DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" "www.sparrowos.com" -78.172.103.203 - - [08/May/2009:22:54:40 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -186.236.197.166 - - [08/May/2009:22:55:42 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)" "www.sparrowos.com" -186.236.197.166 - - [08/May/2009:22:55:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)" "www.sparrowos.com" -186.236.197.166 - - [08/May/2009:22:55:44 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; InfoPath.2)" "www.sparrowos.com" -186.236.197.166 - - [08/May/2009:22:56:24 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 12713984 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -106.236.2.254 - - [08/May/2009:22:57:34 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -40.213.27.3 - - [08/May/2009:22:57:46 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -40.213.27.3 - - [08/May/2009:22:57:46 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.52.122.110 - - [08/May/2009:23:00:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -161.33.231.207 - - [08/May/2009:23:07:06 -0700] "GET / HTTP/1.1" 200 81188 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" "www.sparrowos.com" -49.110.60.122 - - [08/May/2009:23:11:01 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "www.sparrowos.com" -93.112.23.193 - - [08/May/2009:23:11:57 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4704256 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -30.24.150.71 - - [08/May/2009:23:17:44 -0700] "GET / HTTP/1.1" 200 81188 "-" "Baiduspider+(+http://www.baidu.jp/spider/)" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:28:26 -0700] "GET / HTTP/1.0" 200 81188 "http://www.google.com/search?q=http%3A%2F%2Fwww.sparrowos.com&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:30:25 -0700] "GET /images/Header.JPG HTTP/1.0" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:30:26 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:30:27 -0700] "GET /favicon.ico HTTP/1.0" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:17 -0700] "GET /screenshots.html HTTP/1.0" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:17 -0700] "GET /images/Collision.JPG HTTP/1.0" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:17 -0700] "GET /images/CTrace.JPG HTTP/1.0" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:17 -0700] "GET /images/Rocks.JPG HTTP/1.0" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:17 -0700] "GET /images/Dollar.JPG HTTP/1.0" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:17 -0700] "GET /images/DotNet.JPG HTTP/1.0" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/FlightSim2.JPG HTTP/1.0" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/Tanks.JPG HTTP/1.0" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/FPS.JPG HTTP/1.0" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/Squirt.JPG HTTP/1.0" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/Span.JPG HTTP/1.0" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/XCaliber.jpg HTTP/1.0" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/Organ.jpg HTTP/1.0" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:18 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.0" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -62.102.171.89 - - [08/May/2009:23:34:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:41 -0700] "GET /index.html HTTP/1.0" 200 81188 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:34:43 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 327680 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -69.255.60.173 - - [08/May/2009:23:36:59 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 3034368 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10 GTB5" "www.sparrowos.com" -11.152.238.13 - - [08/May/2009:23:49:58 -0700] "GET /history.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.89 - - [08/May/2009:23:51:50 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -63.34.174.246 - - [08/May/2009:23:56:31 -0700] "GET / HTTP/1.1" 200 81188 "-" ".NET Framework Test Client" "www.sparrowos.com" -63.34.174.246 - - [08/May/2009:23:56:32 -0700] "GET / HTTP/1.1" 200 81188 "-" ".NET Framework Test Client" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:00:00:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -242.131.121.161 - - [09/May/2009:00:02:03 -0700] "GET / HTTP/1.0" 200 81188 "-" "Wget/1.10.2" "sparrowos.com" -11.99.195.184 - - [09/May/2009:00:12:55 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -62.102.171.89 - - [09/May/2009:00:17:41 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:00:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.238.13 - - [09/May/2009:00:38:48 -0700] "GET /sitebuilder/?S=A HTTP/1.0" 200 796 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:00:46:31 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4704256 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:49:34 -0700] "GET / HTTP/1.1" 200 81188 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:49:53 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:49:54 -0700] "GET /contact.html HTTP/1.1" 200 5360 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:49:54 -0700] "GET /demo.html HTTP/1.1" 200 6327 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:49:55 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:49:56 -0700] "GET /index.html HTTP/1.1" 200 81188 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:00 -0700] "GET /requirements.html HTTP/1.1" 200 3333 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:01 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:02 -0700] "GET /trouble.html HTTP/1.1" 200 25395 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:06 -0700] "GET /flightsim.html HTTP/1.1" 200 50990 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:08 -0700] "GET /fps.html HTTP/1.1" 200 33359 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:11 -0700] "GET /organ.html HTTP/1.1" 200 3938 "-" "Java/1.6.0_04" "www.sparrowos.com" -18.146.211.242 - - [09/May/2009:00:50:12 -0700] "GET /span.html HTTP/1.1" 200 3929 "-" "Java/1.6.0_04" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:00:51:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:00:52:07 -0700] "GET /v505.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" diff --git a/SparrowOS/Demo/WebLogExample/access_090510.LOG b/SparrowOS/Demo/WebLogExample/access_090510.LOG deleted file mode 100644 index 06d649d..0000000 --- a/SparrowOS/Demo/WebLogExample/access_090510.LOG +++ /dev/null @@ -1,788 +0,0 @@ -62.102.171.89 - - [09/May/2009:01:00:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:01:17:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -111.114.93.215 - - [09/May/2009:01:20:38 -0700] "GET / HTTP/1.1" 200 81188 "http://sourceforge.net/projects/sparrowos4/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -111.114.93.215 - - [09/May/2009:01:20:48 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 393216 "-" "NSPlayer/10.0.0.4066" "www.sparrowos.com" -111.114.93.215 - - [09/May/2009:01:21:02 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:01:22:07 -0700] "GET /SlurpConfirm404/briefs.htm HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -111.114.93.215 - - [09/May/2009:01:24:29 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 37814272 "-" "NSPlayer/10.0.0.4066 WMFSDK/10.0" "www.sparrowos.com" -111.114.93.215 - - [09/May/2009:01:24:29 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 35323904 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:01:31:55 -0700] "GET /files/?M=D HTTP/1.0" 401 395 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.63 - - [09/May/2009:01:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -145.36.209.33 - - [09/May/2009:01:41:46 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 720896 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.157.255.43 - - [09/May/2009:01:42:02 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mediapartners-Google" "www.sparrowos.com" -46.61.168.156 - - [09/May/2009:01:42:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.brothersoft.com/the-sparrowos-operating-system-download-67591.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6; HbTools 4.7.2)" "www.sparrowos.com" -39.134.192.68 - - [09/May/2009:01:42:20 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -161.33.231.55 - - [09/May/2009:01:47:46 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "-" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:01:50:25 -0700] "GET /sitebuilder/?M=A HTTP/1.0" 200 796 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.122 - - [09/May/2009:01:51:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -121.196.167.108 - - [09/May/2009:01:59:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:02:00:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -120.52.204.220 - - [09/May/2009:02:08:01 -0700] "GET / HTTP/1.1" 304 - "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)" "www.sparrowos.com" -20.148.190.188 - - [09/May/2009:02:09:07 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.co.in/search?hl=en&q=C%2B%2B+for+64+bit+operating+system&btnG=Google+Search&meta=&aq=f&oq=" "Opera/9.27 (Windows NT 6.0; U; en)" "www.sparrowos.com" -20.148.190.188 - - [09/May/2009:02:09:09 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Opera/9.27 (Windows NT 6.0; U; en)" "www.sparrowos.com" -20.148.190.188 - - [09/May/2009:02:09:11 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "http://www.sparrowos.com/" "Opera/9.27 (Windows NT 6.0; U; en)" "www.sparrowos.com" -20.148.190.188 - - [09/May/2009:02:09:12 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Opera/9.27 (Windows NT 6.0; U; en)" "www.sparrowos.com" -186.39.187.95 - - [09/May/2009:02:10:26 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)" "sparrowos.com" -186.39.187.95 - - [09/May/2009:02:10:26 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)" "sparrowos.com" -186.39.187.95 - - [09/May/2009:02:10:27 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)" "www.sparrowos.com" -20.148.190.188 - - [09/May/2009:02:11:03 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "http://www.sparrowos.com/" "Opera/9.27 (Windows NT 6.0; U; en)" "www.sparrowos.com" -20.148.190.188 - - [09/May/2009:02:11:03 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Opera/9.27 (Windows NT 6.0; U; en)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:02:17:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.13.137 - - [09/May/2009:02:26:24 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.13.137 - - [09/May/2009:02:26:25 -0700] "GET /contact.html HTTP/1.1" 200 5360 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:02:34:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -121.242.196.14 - - [09/May/2009:02:49:52 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?sourceid=navclient&ie=UTF-8&rlz=1T4GGLL_enUS323US323&q=64bit+operating+system+free+download" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; MySpace;; MySpace;)" "www.sparrowos.com" -121.242.196.14 - - [09/May/2009:02:49:54 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; MySpace;; MySpace;)" "www.sparrowos.com" -121.242.196.14 - - [09/May/2009:02:49:59 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "contype" "www.sparrowos.com" -121.242.196.14 - - [09/May/2009:02:50:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; MySpace;; MySpace;)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:02:50:36 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.63 - - [09/May/2009:02:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -78.234.166.232 - - [09/May/2009:02:51:41 -0700] "GET / HTTP/1.1" 200 81188 "http://sourceforge.net/projects/sparrowos4/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -78.234.166.232 - - [09/May/2009:02:51:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -78.234.166.232 - - [09/May/2009:02:51:44 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 196608 "-" "NSPlayer/10.0.0.4066" "www.sparrowos.com" -78.234.166.232 - - [09/May/2009:02:52:54 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 10354688 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -78.234.166.232 - - [09/May/2009:02:52:54 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 42926080 "-" "NSPlayer/10.0.0.4066 WMFSDK/10.0" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:53:50 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.be/search?hl=nl&ei=UVIFStXTO4LE-Ab_ooSSAw&sa=X&oi=spell&resnum=1&ct=result&cd=1&q=64+bit+os&spell=1" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:53:50 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:53:59 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:02 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/11.0.5721.5260" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:08 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 7929856 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:09 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:09 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:09 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:10 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 4521984 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:10 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:10 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:10 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:11 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:11 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:11 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:11 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:12 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:12 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:13 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:13 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:48 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:49 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:54:50 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/11.0.5721.5260" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:55:34 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 23658496 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.19) Gecko/20081217 K-Meleon/1.5.2" "www.sparrowos.com" -215.7.202.8 - - [09/May/2009:02:55:34 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 22151168 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:02:58:30 -0700] "GET / HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:02:58:30 -0700] "GET /images/Header.JPG HTTP/1.1" 304 - "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:02:58:36 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 2359296 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -11.52.122.31 - - [09/May/2009:03:00:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:03:03:16 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 2359296 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -168.87.130.82 - - [09/May/2009:03:11:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1572864 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; cs; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:03:17:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:03:34:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -207.243.16.89 - - [09/May/2009:03:39:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -60.101.13.137 - - [09/May/2009:03:44:05 -0700] "GET /flightsim.html HTTP/1.1" 200 50990 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -181.52.95.226 - - [09/May/2009:03:45:47 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (compatible; MSIE or Firefox mutant; not on Windows server; +http://ws.daum.net/aboutWebSearch.html) Daumoa/2.0" "www.sparrowos.com" -181.52.95.226 - - [09/May/2009:03:45:47 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com" "Mozilla/5.0 (compatible; Firefox compatible; MS IE compatible; not on Windows server; +http://cs.daum.net/faq/site/15.html) Daumoa-feedfetcher/2.0" "www.sparrowos.com" -60.101.13.137 - - [09/May/2009:03:46:10 -0700] "GET / HTTP/1.1" 200 81188 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -125.40.240.191 - - [09/May/2009:03:49:53 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "SeznamBot/2.0 (+http://fulltext.sblog.cz/robot/)" "www.sparrowos.com" -125.40.240.191 - - [09/May/2009:03:49:54 -0700] "GET / HTTP/1.1" 200 81188 "-" "SeznamBot/2.0 (+http://fulltext.sblog.cz/robot/)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:03:51:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -120.25.135.248 - - [09/May/2009:03:54:45 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -11.52.122.31 - - [09/May/2009:04:00:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:02:55 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 520678 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:02:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 917504 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:02:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 193841 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:02:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 511644 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:02:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 562286 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:03:03 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 786432 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:03:04 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 851968 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:03:06 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 550985 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:03:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 39622 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -188.209.67.121 - - [09/May/2009:04:03:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 720896 "http://www.globalfreeware.com/LimeWire-4180-Beta--4167-download.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.1)" "www.sparrowos.com" -187.56.9.122 - - [09/May/2009:04:05:28 -0700] "GET /V421.html HTTP/1.1" 404 275 "-" "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)" "www.sparrowos.com" -60.101.246.40 - - [09/May/2009:04:09:51 -0700] "GET /requirements.html HTTP/1.0" 304 - "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -49.107.245.27 - - [09/May/2009:04:14:35 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:04:15:28 -0700] "GET /sitebuilder/images/?S=A HTTP/1.0" 200 3273 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:04:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:04:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -216.126.254.172 - - [09/May/2009:04:35:46 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.co.uk/search?q=operating+systems+free+request+cd&hl=en&start=10&sa=N" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -216.126.254.172 - - [09/May/2009:04:35:52 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -216.126.254.172 - - [09/May/2009:04:35:57 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -49.122.166.193 - - [09/May/2009:04:36:48 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 996583 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.86 - - [09/May/2009:04:36:48 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 245291 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.193 - - [09/May/2009:04:36:49 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 294711 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -216.126.254.172 - - [09/May/2009:04:36:50 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.10) Gecko/2009042708 Fedora/3.0.10-1.fc10 Firefox/3.0.10" "www.sparrowos.com" -49.122.166.251 - - [09/May/2009:04:36:52 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 126496 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.115 - - [09/May/2009:04:36:53 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 620324 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.193 - - [09/May/2009:04:36:55 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 1572864 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.165 - - [09/May/2009:04:36:55 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 63249 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.193 - - [09/May/2009:04:36:57 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 2097152 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.193 - - [09/May/2009:04:36:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 31705 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -49.122.166.193 - - [09/May/2009:04:36:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 21376 "http://www.globalfreeware.com/CPU-Z-1442-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -161.33.231.55 - - [09/May/2009:04:38:13 -0700] "GET /index.html HTTP/1.1" 304 - "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:04:46:37 -0700] "GET /sitebuilder/?S=D HTTP/1.0" 200 796 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -38.226.169.31 - - [09/May/2009:04:50:23 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:04:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.87.44 - - [09/May/2009:04:56:15 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.87.44 - - [09/May/2009:04:58:20 -0700] "GET /contact.html HTTP/1.0" 304 - "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -62.102.171.122 - - [09/May/2009:05:00:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.246.81 - - [09/May/2009:05:01:19 -0700] "GET /history.html HTTP/1.0" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:05:03:38 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -63.29.111.43 - - [09/May/2009:05:06:53 -0700] "GET /v505.html HTTP/1.1" 404 275 "-" "Mozilla/5.0 (compatible; woriobot support [at] worio [dot] com +http://worio.com)" "www.sparrowos.com" -216.125.49.205 - - [09/May/2009:05:12:04 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://images.google.ro/imgres?imgurl=http://www.globalfreeware.com/productImg/39/YouTube-Downloader-216/youtubednldr11.gif&imgrefurl=http://www.globalfreeware.com/YouTube-Downloader-216.html&usg=__oTEVmin8KCl46ET7llSU7NxmGFU=&h=326&w=378&sz=11&hl=ro&start=2&um=1&tbnid=q04pwDLVt9sGgM:&tbnh=105&tbnw=122&prev=/images%3Fq%3Ddownload%2Bfree%2Byoutube%2Bdownloader%26hl%3Dro%26sa%3DN%26um%3D1" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:05:15:44 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.174.5361328125" "www.sparrowos.com" -11.52.122.63 - - [09/May/2009:05:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:05:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -41.245.245.131 - - [09/May/2009:05:45:22 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" "www.sparrowos.com" -41.245.62.67 - - [09/May/2009:05:46:10 -0700] "GET / HTTP/1.0" 200 81188 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)" "www.sparrowos.com" -62.102.171.110 - - [09/May/2009:05:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -218.172.171.54 - - [09/May/2009:05:57:41 -0700] "GET /images/Span.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -135.249.130.177 - - [09/May/2009:05:57:43 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; (R1 1.6); .NET CLR 2.0.50727)" "www.sparrowos.com" -218.172.171.54 - - [09/May/2009:05:57:45 -0700] "GET /images/Squirt.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -218.172.171.54 - - [09/May/2009:05:58:09 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -218.172.171.54 - - [09/May/2009:05:58:37 -0700] "GET /images/FPS.JPG HTTP/1.1" 304 - "-" "Mozilla/4.0 (compatible;)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:06:00:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -135.249.130.177 - - [09/May/2009:06:00:34 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 358656 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; (R1 1.6); .NET CLR 2.0.50727)" "www.sparrowos.com" -135.249.130.177 - - [09/May/2009:06:01:01 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 254896 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; (R1 1.6); .NET CLR 2.0.50727)" "www.sparrowos.com" -135.249.130.177 - - [09/May/2009:06:01:25 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 530688 "http://www.globalfreeware.com/Nlite-Add-on-Maker-124-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; (R1 1.6); .NET CLR 2.0.50727)" "www.sparrowos.com" -164.76.174.46 - - [09/May/2009:06:07:27 -0700] "GET / HTTP/1.1" 200 81188 "http://www.cs.toronto.edu/~ad/news/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.76.174.46 - - [09/May/2009:06:07:27 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.76.174.46 - - [09/May/2009:06:07:28 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 655360 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.76.174.46 - - [09/May/2009:06:07:28 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -164.76.174.46 - - [09/May/2009:06:07:31 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -62.102.171.122 - - [09/May/2009:06:17:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -135.111.217.185 - - [09/May/2009:06:30:41 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com.kw/search?hl=ar&client=firefox-a&rls=org.mozilla:en-US:official&hs=nxm&ei=S4UFSvy6FMOR_QaPl5GlBw&sa=X&oi=spell&resnum=1&ct=result&cd=1&q=in+32+bit+os+i+want+to+use+virtual+64+bit+os&spell=1" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.111.217.185 - - [09/May/2009:06:30:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.111.217.185 - - [09/May/2009:06:30:43 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.111.217.185 - - [09/May/2009:06:30:45 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -135.111.217.185 - - [09/May/2009:06:30:48 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:06:34:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:06:51:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -207.133.23.69 - - [09/May/2009:06:54:36 -0700] "GET / HTTP/1.1" 200 81188 "-" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -207.133.23.69 - - [09/May/2009:06:54:37 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -207.133.23.69 - - [09/May/2009:06:54:38 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -207.133.23.69 - - [09/May/2009:06:54:40 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:56:19 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:56:19 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.49.200.214 - - [09/May/2009:06:56:27 -0700] "GET / HTTP/1.1" 200 81188 "-" "Java/1.6.0-beta2" "www.sparrowos.com" -50.242.188.238 - - [09/May/2009:06:57:06 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -50.242.188.238 - - [09/May/2009:06:57:07 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -50.242.188.238 - - [09/May/2009:06:57:07 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -50.242.188.238 - - [09/May/2009:06:57:08 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -50.242.188.238 - - [09/May/2009:06:57:11 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:57:17 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:57:17 -0700] "GET /requirements.html HTTP/1.1" 200 3333 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:57:17 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 4653056 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:57:17 -0700] "GET /images/Requirements.jpg HTTP/1.1" 200 29287 "http://www.sparrowos.com/requirements.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:57:20 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:57:21 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:16 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/requirements.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:17 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:17 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:17 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:17 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:17 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:17 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:18 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:19 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:20 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:20 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:20 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:20 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -39.21.1.224 - - [09/May/2009:06:59:20 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:07:00:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:07:08:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -50.242.22.61 - - [09/May/2009:07:10:13 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -50.242.22.61 - - [09/May/2009:07:10:13 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -50.242.22.61 - - [09/May/2009:07:10:14 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -50.242.22.61 - - [09/May/2009:07:10:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -50.242.22.61 - - [09/May/2009:07:10:18 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -216.183.97.190 - - [09/May/2009:07:11:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -164.157.255.43 - - [09/May/2009:07:11:55 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mediapartners-Google" "www.sparrowos.com" -173.158.128.252 - - [09/May/2009:07:12:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 720896 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; ro; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -173.158.128.252 - - [09/May/2009:07:12:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; ro; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -216.183.97.190 - - [09/May/2009:07:13:23 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -216.183.97.190 - - [09/May/2009:07:13:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -216.183.97.190 - - [09/May/2009:07:14:22 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -216.183.97.190 - - [09/May/2009:07:16:05 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -11.52.122.110 - - [09/May/2009:07:17:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -50.242.22.61 - - [09/May/2009:07:23:32 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 1063680 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -11.210.178.121 - - [09/May/2009:07:24:05 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -11.210.178.121 - - [09/May/2009:07:24:05 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -11.210.178.121 - - [09/May/2009:07:24:05 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -11.210.178.121 - - [09/May/2009:07:24:06 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -11.210.178.121 - - [09/May/2009:07:24:09 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:07:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -29.174.77.249 - - [09/May/2009:07:48:15 -0700] "GET /media/FlightSim.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/flightsim.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.249 - - [09/May/2009:07:48:16 -0700] "GET /media/FlightSim.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/flightsim.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:07:51:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:56:04 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:16 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:16 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:16 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:16 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:16 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:16 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:17 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:17 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:17 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:17 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:17 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:18 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:18 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:18 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:18 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:19 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:07:59:20 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:08:00:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -207.166.137.11 - - [09/May/2009:08:00:38 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.14 (de) (TL-FF) (.NET CLR 3.5.30729)" "www.sparrowos.com" -186.43.228.40 - - [09/May/2009:08:14:20 -0700] "GET / HTTP/1.1" 200 81188 "-" "..." "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:08:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:08:21:06 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:08:21:07 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -188.16.5.159 - - [09/May/2009:08:21:32 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)" "www.sparrowos.com" -188.16.5.159 - - [09/May/2009:08:21:38 -0700] "GET /files/LTTAD.ISO HTTP/1.1" 401 395 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:08:23:18 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 39976960 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -72.230.46.138 - - [09/May/2009:08:25:09 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?hl=en&ei=N6AFSvijJ43SNOmH4aID&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=64+BIT+OPERATING+SYSTEM&spell=1" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -72.230.46.138 - - [09/May/2009:08:25:10 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -72.230.46.138 - - [09/May/2009:08:25:12 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/9.0.0.3268" "www.sparrowos.com" -72.230.46.138 - - [09/May/2009:08:25:14 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/9.0.0.3268 WMFSDK/9.0" "www.sparrowos.com" -29.174.77.224 - - [09/May/2009:08:25:25 -0700] "GET /media/Demo2c.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/demo1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.224 - - [09/May/2009:08:25:25 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 196608 "http://www.sparrowos.com/demo1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.224 - - [09/May/2009:08:25:25 -0700] "GET /media/Demo2c.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/demo1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -60.101.75.29 - - [09/May/2009:08:27:57 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.75.29 - - [09/May/2009:08:27:57 -0700] "GET /SparrowOSCD2.ISO HTTP/1.1" 200 131072 "-" "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -72.230.46.138 - - [09/May/2009:08:28:06 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 62717952 "-" "NSPlayer/9.0.0.3268 WMFSDK/9.0" "www.sparrowos.com" -11.52.122.106 - - [09/May/2009:08:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -215.132.0.116 - - [09/May/2009:08:37:28 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.brothersoft.com/the-sparrowos-operating-system-download-67591.html" "Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -60.101.246.82 - - [09/May/2009:08:41:57 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -11.228.13.200 - - [09/May/2009:08:44:48 -0700] "GET /(null) HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SU 3.22; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0)" "www.sparrowos.com" -11.52.122.106 - - [09/May/2009:08:51:39 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -69.23.236.186 - - [09/May/2009:08:59:27 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10 GTB5" "www.sparrowos.com" -62.102.171.122 - - [09/May/2009:09:00:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:09:10:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4704256 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -60.101.138.143 - - [09/May/2009:09:15:41 -0700] "GET /timeout.html HTTP/1.1" 404 275 "-" "WinHttp" "www.sparrowos.com" -11.52.122.63 - - [09/May/2009:09:17:40 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -215.185.195.12 - - [09/May/2009:09:18:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 196608 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)" "www.sparrowos.com" -30.24.150.71 - - [09/May/2009:09:25:48 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "-" "Baiduspider+(+http://www.baidu.jp/spider/)" "sparrowos.com" -11.52.122.63 - - [09/May/2009:09:34:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -30.24.203.25 - - [09/May/2009:09:35:47 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Baiduspider+(+http://www.baidu.jp/spider/)" "sparrowos.com" -72.221.177.204 - - [09/May/2009:09:39:30 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:09:39:31 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:09:40:01 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 9699328 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -62.102.171.110 - - [09/May/2009:09:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:10:00:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.246.161 - - [09/May/2009:10:08:43 -0700] "GET /flightsim.html HTTP/1.0" 304 - "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -164.157.255.43 - - [09/May/2009:10:15:39 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mediapartners-Google" "www.sparrowos.com" -153.100.243.72 - - [09/May/2009:10:15:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 2031616 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -60.101.246.123 - - [09/May/2009:10:16:15 -0700] "GET /index.html HTTP/1.0" 200 81188 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -62.102.171.110 - - [09/May/2009:10:17:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -219.57.136.16 - - [09/May/2009:10:17:33 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -91.28.2.90 - - [09/May/2009:10:17:52 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "http://www.globalfreeware.com/YouTube-Downloader-216-download.html" "Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -91.28.2.90 - - [09/May/2009:10:24:29 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/YouTube-Downloader-216-download.html" "Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -91.28.2.90 - - [09/May/2009:10:29:03 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 305920 "http://www.globalfreeware.com/YouTube-Downloader-216-download.html" "Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -91.28.2.194 - - [09/May/2009:10:31:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 524288 "http://www.globalfreeware.com/YouTube-Downloader-216-download.html" "Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:10:34:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -91.28.2.197 - - [09/May/2009:10:40:11 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 703846 "-" "Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:10:42:31 -0700] "GET /songs.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.110 - - [09/May/2009:10:51:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -107.167.153.122 - - [09/May/2009:10:54:35 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -107.167.153.122 - - [09/May/2009:10:54:36 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -107.167.153.122 - - [09/May/2009:10:54:37 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -107.167.153.122 - - [09/May/2009:10:55:36 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 20054016 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -107.167.153.122 - - [09/May/2009:10:55:36 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 18087936 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -11.52.122.106 - - [09/May/2009:11:00:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -91.28.2.82 - - [09/May/2009:11:02:19 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 2217534 "-" "Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:11:17:42 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:11:19:22 -0700] "GET /sitebuilder/images/?N=A HTTP/1.0" 200 3273 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -29.231.122.123 - - [09/May/2009:11:20:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 2162688 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:11:21:38 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -146.169.159.241 - - [09/May/2009:11:31:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB5)" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:11:34:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -146.169.159.241 - - [09/May/2009:11:36:03 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB5)" "www.sparrowos.com" -146.169.159.241 - - [09/May/2009:11:37:16 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1310720 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB5)" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:20 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "-" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:24 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:27 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:32 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:35 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:36 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:37 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:38 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:38 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:39 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:40 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:40 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:41 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:42 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:43 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -72.136.50.90 - - [09/May/2009:11:41:44 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/screenshots.html" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -26.122.66.250 - - [09/May/2009:11:45:36 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "http://images.google.it/imgres?imgurl=http://www.globalfreeware.com/productImg/145/SkyCar-3D-Desktop-Toy/skycar.jpg&imgrefurl=http://www.globalfreeware.com/SkyCar-3D-Desktop-Toy.html&usg=__OCAndmkoTsh0GKdnYjHNVEqG5As=&h=371&w=437&sz=76&hl=it&start=13&tbnid=2LGsIT1UyluCnM:&tbnh=107&tbnw=126&prev=/images%3Fq%3DSkycar%26gbv%3D2%26hl%3Dit%26sa%3DG" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -216.200.186.25 - - [09/May/2009:11:46:01 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/525.18 (KHTML, like Gecko, Safari/525.20) OmniWeb/v622.6.0.109966" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:11:51:38 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -70.141.45.50 - - [09/May/2009:11:52:10 -0700] "GET / HTTP/1.0" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; {704A62EA-B19E-0D54-180C-2A8A4141BDFA})" "sparrowos.com" -60.101.75.116 - - [09/May/2009:11:54:11 -0700] "GET /organ.html HTTP/1.1" 200 3938 "-" "WinHttp" "www.sparrowos.com" -60.101.246.29 - - [09/May/2009:11:57:55 -0700] "GET /tanks.html HTTP/1.0" 200 3917 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -187.125.2.51 - - [09/May/2009:11:58:53 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; InfoPath.1)" "www.sparrowos.com" -187.125.2.51 - - [09/May/2009:11:59:14 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; InfoPath.1)" "www.sparrowos.com" -187.125.2.51 - - [09/May/2009:11:59:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "http://www.globalfreeware.com/Easy-Media-Cover-160-download.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; InfoPath.1)" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:12:00:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -121.116.237.36 - - [09/May/2009:12:04:44 -0700] "GET / HTTP/1.1" 200 81188 "http://royal.pingdom.com/2008/09/26/10-amazingly-alternative-operating-systems-and-what-they-could-mean-for-the-future/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -121.116.237.36 - - [09/May/2009:12:04:45 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -121.116.237.36 - - [09/May/2009:12:04:45 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -121.116.237.36 - - [09/May/2009:12:04:45 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -121.116.237.36 - - [09/May/2009:12:04:48 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -121.116.237.36 - - [09/May/2009:12:06:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 872192 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -39.73.50.18 - - [09/May/2009:12:15:19 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/IrfanView32-v410-download.html" "Opera/9.64 (Windows NT 5.1; U; hu) Presto/2.1.1" "www.sparrowos.com" -11.52.122.31 - - [09/May/2009:12:17:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:12:34:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -81.136.130.16 - - [09/May/2009:12:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1048576 "http://www.globalfreeware.com/Super-2008-Build-33-download.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19" "www.sparrowos.com" -144.216.91.208 - - [09/May/2009:12:50:05 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.freewarefree.net/utility/3955/sparrowos-503/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6)" "www.sparrowos.com" -11.52.122.106 - - [09/May/2009:12:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -189.85.192.5 - - [09/May/2009:12:54:49 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10" "www.sparrowos.com" -189.85.192.5 - - [09/May/2009:12:54:50 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10" "www.sparrowos.com" -189.85.192.5 - - [09/May/2009:12:54:52 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10" "www.sparrowos.com" -189.85.192.5 - - [09/May/2009:12:54:55 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10" "www.sparrowos.com" -189.85.192.5 - - [09/May/2009:12:56:31 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 233913 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10" "www.sparrowos.com" -29.174.77.83 - - [09/May/2009:13:00:27 -0700] "GET /media/FPS.wmv HTTP/1.0" 200 196608 "http://www.sparrowos.com/fps.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:13:00:28 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -61.197.8.52 - - [09/May/2009:13:02:32 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -222.87.133.56 - - [09/May/2009:13:10:06 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 917504 "http://www.globalfreeware.com/NETEagle-550-download.html" "Mozilla/4.0 WebTV/2.6 (compatible; MSIE 4.0)" "www.sparrowos.com" -29.174.77.228 - - [09/May/2009:13:11:25 -0700] "GET /media/BigGuns.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/bigguns.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.228 - - [09/May/2009:13:11:26 -0700] "GET /media/BigGuns.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/bigguns.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -72.49.38.215 - - [09/May/2009:13:16:05 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5 (.NET CLR 3.5.30729)" "sparrowos.com" -11.52.122.89 - - [09/May/2009:13:17:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.246.157 - - [09/May/2009:13:22:13 -0700] "GET /detailedlinfo.html HTTP/1.0" 304 - "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:13:26:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:13:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.158.64 - - [09/May/2009:13:37:27 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.158.64 - - [09/May/2009:13:37:27 -0700] "GET / HTTP/1.1" 200 81188 "-" "T-Mobile Dash Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 320x240; MSNBOT-MOBILE/1.1; +http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -187.252.133.62 - - [09/May/2009:13:38:01 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sk; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -187.252.133.62 - - [09/May/2009:13:38:01 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sk; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -187.252.133.62 - - [09/May/2009:13:38:08 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 6619136 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; sk; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -40.23.158.56 - - [09/May/2009:13:43:01 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.it/search?q=windows+cpp+microseconds+delay+function+RDTSC&hl=it&safe=off&client=firefox-a&rls=org.mozilla:it:official&start=10&sa=N" "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -40.23.158.56 - - [09/May/2009:13:43:03 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -40.23.158.56 - - [09/May/2009:13:43:10 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/9.0.0.3250" "www.sparrowos.com" -40.23.158.56 - - [09/May/2009:13:45:40 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 917504 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -40.23.158.56 - - [09/May/2009:13:45:40 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 917504 "-" "NSPlayer/9.0.0.3267 WMFSDK/9.0" "www.sparrowos.com" -29.174.77.102 - - [09/May/2009:13:47:24 -0700] "GET /media/Span.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/span.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.102 - - [09/May/2009:13:47:24 -0700] "GET /media/Span.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/span.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -135.249.91.183 - - [09/May/2009:13:49:44 -0700] "GET / HTTP/1.1" 200 81188 "-" "-" "sparrowos.com" -135.249.91.183 - - [09/May/2009:13:49:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1114112 "http://www.globalfreeware.com/Google-Translator-Boomerang-10301-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -135.249.91.183 - - [09/May/2009:13:49:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 851968 "http://www.globalfreeware.com/Google-Translator-Boomerang-10301-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -135.249.91.183 - - [09/May/2009:13:49:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 786432 "http://www.globalfreeware.com/Google-Translator-Boomerang-10301-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -135.249.91.183 - - [09/May/2009:13:49:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 720896 "http://www.globalfreeware.com/Google-Translator-Boomerang-10301-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -135.249.91.183 - - [09/May/2009:13:49:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 544477 "http://www.globalfreeware.com/Google-Translator-Boomerang-10301-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:13:51:36 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:13:58:51 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.16.77490234375" "www.sparrowos.com" -157.32.39.194 - - [09/May/2009:13:59:05 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?q=free+operating+system&hl=en&start=10&sa=N" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19" "www.sparrowos.com" -157.32.39.194 - - [09/May/2009:13:59:09 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19" "www.sparrowos.com" -157.32.39.194 - - [09/May/2009:13:59:16 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19" "www.sparrowos.com" -157.32.39.194 - - [09/May/2009:13:59:21 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 655360 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:14:00:38 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -219.14.30.190 - - [09/May/2009:14:02:28 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 284928 "http://wareseeker.com/download/the-sparrowos-operating-system-4.17.rar/214b89883" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)" "www.sparrowos.com" -184.192.12.137 - - [09/May/2009:14:05:22 -0700] "GET /index.html HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -184.192.12.137 - - [09/May/2009:14:05:23 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -184.192.12.137 - - [09/May/2009:14:05:23 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 327680 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -184.192.12.137 - - [09/May/2009:14:05:28 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -184.192.12.137 - - [09/May/2009:14:05:34 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10" "www.sparrowos.com" -140.179.243.106 - - [09/May/2009:14:13:43 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Python-urllib/2.5" "www.sparrowos.com" -140.179.243.106 - - [09/May/2009:14:13:45 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 1048576 "-" "Mozilla/4.0" "www.sparrowos.com" -140.179.243.106 - - [09/May/2009:14:13:54 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 3655680 "-" "Mozilla/4.0" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:41 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:41 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:42 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:44 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:44 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:51 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:52 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 262144 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -219.110.196.69 - - [09/May/2009:14:16:54 -0700] "GET /contact.html HTTP/1.1" 200 5360 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2a1pre) Gecko/20090508 Minefield/3.6a1pre" "www.sparrowos.com" -62.102.171.122 - - [09/May/2009:14:17:22 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -29.174.77.60 - - [09/May/2009:14:19:55 -0700] "GET /media/MultiCore.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/multicore1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.60 - - [09/May/2009:14:19:55 -0700] "GET /media/MultiCore.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/multicore1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.72.181.116 - - [09/May/2009:14:21:10 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "http://www.globalfreeware.com/The-GIMP-246-download.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.65 Safari/525.19" "www.sparrowos.com" -69.197.213.246 - - [09/May/2009:14:30:38 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:14:34:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:14:39:38 -0700] "GET /logs/?D=D HTTP/1.0" 401 395 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -29.174.77.122 - - [09/May/2009:14:39:57 -0700] "GET /media/BirdLand.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/birdland.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.122 - - [09/May/2009:14:39:58 -0700] "GET /media/BirdLand.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/birdland.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.40.241.151 - - [09/May/2009:14:42:04 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.1.3)" "www.sparrowos.com" -29.40.241.151 - - [09/May/2009:14:42:27 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.1.3)" "www.sparrowos.com" -106.236.2.182 - - [09/May/2009:14:42:55 -0700] "GET /V421.html HTTP/1.1" 404 275 "http://www.sparrowos.com/V421.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.40.241.151 - - [09/May/2009:14:43:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4704256 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.1.3)" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:14:51:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.218.191 - - [09/May/2009:14:51:50 -0700] "GET /tmp/?N=A HTTP/1.0" 200 504 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -146.215.254.54 - - [09/May/2009:14:59:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727)" "www.sparrowos.com" -196.124.55.161 - - [09/May/2009:14:59:37 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4708352 "http://www.globalfreeware.com/SparrowOS-503-download.html" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.215.254.54 - - [09/May/2009:14:59:51 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1376256 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727)" "www.sparrowos.com" -146.215.254.54 - - [09/May/2009:15:00:13 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727)" "www.sparrowos.com" -62.102.171.122 - - [09/May/2009:15:00:30 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -196.124.55.161 - - [09/May/2009:15:00:46 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -131.167.189.50 - - [09/May/2009:15:06:56 -0700] "GET / HTTP/1.1" 200 81188 "http://qr.cz/index.php?recordStart=7" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -131.167.189.50 - - [09/May/2009:15:06:57 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -131.167.189.50 - - [09/May/2009:15:06:59 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -131.167.189.50 - - [09/May/2009:15:07:01 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -131.167.189.50 - - [09/May/2009:15:07:04 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -131.212.64.146 - - [09/May/2009:15:11:44 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)" "www.sparrowos.com" -131.212.64.146 - - [09/May/2009:15:11:46 -0700] "GET /contact.html HTTP/1.1" 200 5360 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (support.voilabot@orange-ftgroup.com)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:15:17:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.23.38 - - [09/May/2009:15:21:48 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -72.49.38.215 - - [09/May/2009:15:30:08 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 GTB5 (.NET CLR 3.5.30729)" "sparrowos.com" -11.52.122.89 - - [09/May/2009:15:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -63.241.226.45 - - [09/May/2009:15:39:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -63.241.226.45 - - [09/May/2009:15:40:02 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.globalfreeware.com/Shock-4Way-3D-v121-download.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -63.241.226.45 - - [09/May/2009:15:42:00 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -63.241.226.45 - - [09/May/2009:15:43:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 1305344 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:09 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://qr.cz/index.php?recordStart=7" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:10 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:13 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:15:44:14 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.88 - - [09/May/2009:15:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:16:00:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -69.252.252.253 - - [09/May/2009:16:01:59 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -69.252.252.253 - - [09/May/2009:16:02:48 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 2621440 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; MSN Optimized;US)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:03:39 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:03:49 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -70.172.192.163 - - [09/May/2009:16:13:46 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (compatible; DotBot/1.1; http://www.dotnetdotcom.org/, crawler@dotnetdotcom.org)" "www.sparrowos.com" -93.112.23.38 - - [09/May/2009:16:14:56 -0700] "GET /demo.html HTTP/1.0" 200 6327 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -93.112.23.38 - - [09/May/2009:16:15:00 -0700] "GET /media/Flightsim.wmv HTTP/1.0" 200 9961472 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -93.112.23.38 - - [09/May/2009:16:15:00 -0700] "GET /media/InstallBoot.wmv HTTP/1.0" 200 8323072 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.88 - - [09/May/2009:16:17:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:08 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:08 -0700] "GET /sitebuilder/images/SCRN0002a-640x480.png HTTP/1.1" 200 11969 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:08 -0700] "GET /sitebuilder/images/SCRN0000a-640x480.png HTTP/1.1" 200 15512 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:08 -0700] "GET /sitebuilder/images/SCRN0001a-640x480.png HTTP/1.1" 200 20313 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:08 -0700] "GET /images/Promises.jpg HTTP/1.1" 200 76295 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:14 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:37 -0700] "GET /flightsim.html HTTP/1.1" 200 50990 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:40 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 262144 "http://www.sparrowos.com/flightsim.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:45 -0700] "GET /flightsim.html HTTP/1.1" 304 - "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:45 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/flightsim.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:23:46 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/flightsim.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:05 -0700] "GET /span.html HTTP/1.1" 200 3929 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:06 -0700] "GET /media/Span2.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/span.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:42 -0700] "GET /flightsim.html HTTP/1.1" 200 50990 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/flightsim.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:48 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3802" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:48 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3802 WMFSDK/10.0" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:24:50 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/10.0.0.3802 WMFSDK/10.0" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:27:38 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 15532032 "-" "NSPlayer/10.0.0.3802 WMFSDK/10.0" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:28:16 -0700] "GET /demo.html HTTP/1.1" 200 6327 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:28:17 -0700] "GET /media/InstallBoot.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:28:17 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:28:20 -0700] "GET /requirements.html HTTP/1.1" 200 3333 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:28:20 -0700] "GET /images/Requirements.jpg HTTP/1.1" 200 29287 "http://www.sparrowos.com/requirements.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:29:20 -0700] "GET /trouble.html HTTP/1.1" 200 25395 "http://www.sparrowos.com/requirements.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:29:21 -0700] "GET /images/BootFlow.jpg HTTP/1.1" 200 20514 "http://www.sparrowos.com/trouble.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:29:21 -0700] "GET /media/InstallBoot.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/trouble.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.87.202.165 - - [09/May/2009:16:30:44 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.152.126.65 - - [09/May/2009:16:31:34 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.110 - - [09/May/2009:16:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -146.224.96.127 - - [09/May/2009:16:37:50 -0700] "GET /files/SparrowOSCD.ISO HTTP/1.1" 401 395 "http://www.programas-gratis.net/css/descargar_pop.php?programa=the-sparrowos-operating-system" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -146.224.96.127 - "" [09/May/2009:16:38:07 -0700] "GET /files/SparrowOSCD.ISO HTTP/1.1" 401 395 "http://www.programas-gratis.net/css/descargar_pop.php?programa=the-sparrowos-operating-system" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -146.224.96.127 - "" [09/May/2009:16:38:09 -0700] "GET /files/SparrowOSCD.ISO HTTP/1.1" 401 395 "http://www.programas-gratis.net/css/descargar_pop.php?programa=the-sparrowos-operating-system" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -146.224.96.127 - - [09/May/2009:16:38:10 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -146.224.96.127 - - [09/May/2009:16:39:44 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:16:51:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.110 - - [09/May/2009:17:00:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.88 - - [09/May/2009:17:17:22 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -196.59.94.1 - - [09/May/2009:17:31:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "http://www.brothersoft.com/the-sparrowos-operating-system-download-67591.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:17:34:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:17:35:34 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.185.5621337890625" "www.sparrowos.com" -93.112.23.115 - - [09/May/2009:17:37:58 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -60.101.246.36 - - [09/May/2009:17:40:09 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.246.36 - - [09/May/2009:17:41:13 -0700] "GET /tanks.html HTTP/1.0" 200 3917 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -93.112.23.38 - - [09/May/2009:17:42:42 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 304 - "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.126.231 - - [09/May/2009:17:47:03 -0700] "GET /sites.html HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "sparrowos.com" -11.222.105.118 - - [09/May/2009:17:50:23 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?q=64+bit+operating+system&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.222.105.118 - - [09/May/2009:17:50:23 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.222.105.118 - - [09/May/2009:17:51:18 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.222.105.118 - - [09/May/2009:17:51:18 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.102.171.88 - - [09/May/2009:17:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.196.135.63 - - [09/May/2009:17:56:01 -0700] "GET / HTTP/1.0" 200 81188 "-" "PRCrawler/Nutch-0.9 (data mining development project; crawler@projectrialto.com)" "www.sparrowos.com" -11.196.135.63 - - [09/May/2009:17:56:33 -0700] "GET /tiny.html HTTP/1.0" 404 275 "-" "PRCrawler/Nutch-0.9 (data mining development project; crawler@projectrialto.com)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:18:00:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:18:09:54 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.117.9412841796875" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:18:17:35 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.4.22 - - [09/May/2009:18:24:11 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.89 - - [09/May/2009:18:34:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:41:41 -0700] "GET / HTTP/1.1" 200 81188 "http://forum.osdev.org/viewtopic.php?f=1&t=18653&hilit=Multicore" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:41:42 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:41:48 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/10.00.00.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:41:49 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:10 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:12 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:15 -0700] "GET /index.html HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:17 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 8585216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:18 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/10.00.00.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:18 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:24 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 19202048 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:56 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:56 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 4128768 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:56 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 3997696 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:57 -0700] "GET /media/Demo1.wmv HTTP/1.0" 200 196608 "-" "NSPlayer/8.0.0.4477" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:58 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:43:58 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/10.00.00.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:05 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:35 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:35 -0700] "GET /sitebuilder/images/SCRN0001a-640x480.png HTTP/1.1" 200 20313 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:35 -0700] "GET /sitebuilder/images/SCRN0000a-640x480.png HTTP/1.1" 200 15512 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:35 -0700] "GET /sitebuilder/images/SCRN0002a-640x480.png HTTP/1.1" 200 11969 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:35 -0700] "GET /images/Promises.jpg HTTP/1.1" 200 76295 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:36 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 3932160 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:36 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 3801088 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:42 -0700] "GET /demo.html HTTP/1.1" 200 6327 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:43 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:45 -0700] "GET /media/InstallBoot.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:45 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:45 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 327680 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:46 -0700] "GET /media/Flightsim.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/10.00.00.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:47 -0700] "GET /media/Flightsim.wmv HTTP/1.1" 200 327680 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:47 -0700] "GET /media/InstallBoot.wmv HTTP/1.1" 200 393216 "http://www.sparrowos.com/demo.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:47 -0700] "GET /media/InstallBoot.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:47 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:48 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/10.00.00.3700" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:44:52 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 589824 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:18:45:08 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.179.38232421875" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:45:36 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4708352 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:47:36 -0700] "GET /LTsrc.zip HTTP/1.1" 200 942074 "http://www.sparrowos.com/index.html" "Mozilla/5.0 (Windows; U; Windows NT 5.2; es-ES; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1" "www.sparrowos.com" -146.85.181.232 - - [09/May/2009:18:47:47 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 54788096 "-" "NSPlayer/10.0.0.3700 WMFSDK/10.0" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:18:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -49.122.166.86 - - [09/May/2009:18:54:43 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:19:00:34 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -116.79.98.34 - - [09/May/2009:19:15:00 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com.sg/search?hl=zh-CN&q=64+bit+os+&meta=&aq=f&oq=" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GreenBrowser)" "www.sparrowos.com" -116.79.98.21 - - [09/May/2009:19:15:00 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GreenBrowser)" "www.sparrowos.com" -116.79.98.34 - - [09/May/2009:19:15:02 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/10.0.0.3802" "www.sparrowos.com" -116.79.98.21 - - [09/May/2009:19:15:05 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Windows-Media-Player/10.00.00.4058" "www.sparrowos.com" -116.79.98.34 - - [09/May/2009:19:15:05 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/10.0.0.4054 WMFSDK/10.0" "www.sparrowos.com" -197.29.21.112 - - [09/May/2009:19:16:33 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com.my/search?q=Example+of+Open+Source+OS&hl=en&client=firefox-a&rls=org.mozilla:en-US:official&start=20&sa=N" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0" "www.sparrowos.com" -197.29.21.112 - - [09/May/2009:19:16:40 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0" "www.sparrowos.com" -11.152.143.170 - - [09/May/2009:19:16:46 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 2279680 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -197.29.21.112 - - [09/May/2009:19:16:49 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 327680 "-" "NSPlayer/11.0.5358.4826" "www.sparrowos.com" -116.79.98.34 - - [09/May/2009:19:17:10 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "GreenBrowser" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:19:17:22 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -197.29.21.112 - - [09/May/2009:19:18:04 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0" "www.sparrowos.com" -197.29.21.112 - - [09/May/2009:19:18:38 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 497664 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0" "www.sparrowos.com" -197.29.21.112 - - [09/May/2009:19:18:39 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 393216 "-" "NSPlayer/11.0.5358.4826 WMFSDK/11.0" "www.sparrowos.com" -70.141.45.128 - - [09/May/2009:19:20:37 -0700] "GET / HTTP/1.0" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; BT Openworld BB; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "www.sparrowos.com" -60.101.246.49 - - [09/May/2009:19:21:04 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "sparrowos.com" -60.101.246.49 - - [09/May/2009:19:22:16 -0700] "GET / HTTP/1.0" 200 81188 "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "sparrowos.com" -11.152.143.170 - - [09/May/2009:19:23:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:19:34:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.126.114 - - [09/May/2009:19:37:31 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -93.214.205.208 - - [09/May/2009:19:37:54 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?q=64+bit+operating+system&rls=com.microsoft:en-us:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GGLJ_en" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Comcast Install 1.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -93.214.205.208 - - [09/May/2009:19:37:54 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Comcast Install 1.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -93.214.205.208 - - [09/May/2009:19:37:54 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "contype" "www.sparrowos.com" -93.214.205.208 - - [09/May/2009:19:37:56 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; Comcast Install 1.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.30729; .NET CLR 3.0.30618)" "www.sparrowos.com" -164.157.255.43 - - [09/May/2009:19:38:22 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mediapartners-Google" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:38:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:38:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:38:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:38:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262144 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 393216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 393216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:07 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 393216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:08 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 327680 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262127 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262127 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 393216 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 276708 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 263168 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262144 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262144 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262144 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -49.128.134.95 - - [09/May/2009:19:39:09 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 262144 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -11.152.126.114 - - [09/May/2009:19:46:53 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -62.102.171.181 - - [09/May/2009:19:51:36 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.63 - - [09/May/2009:20:00:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -146.26.187.69 - - [09/May/2009:20:01:43 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 786432 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10" "www.sparrowos.com" -11.152.126.114 - - [09/May/2009:20:11:10 -0700] "GET /organ.html HTTP/1.0" 200 3938 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:20:14:49 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.122.113037109375" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:20:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:20:19:52 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.126.446533203125" "www.sparrowos.com" -11.52.122.63 - - [09/May/2009:20:34:32 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:20:51:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.157.255.43 - - [09/May/2009:21:00:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mediapartners-Google" "www.sparrowos.com" -219.23.76.140 - - [09/May/2009:21:00:26 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4708352 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:21:00:29 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -173.186.151.41 - - [09/May/2009:21:00:59 -0700] "HEAD /media/Demo8.wmv HTTP/1.1" 404 0 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -173.186.151.41 - - [09/May/2009:21:00:59 -0700] "GET /media/Demo8.wmv HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "sparrowos.com" -219.23.76.140 - - [09/May/2009:21:01:15 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 1786724 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3" "www.sparrowos.com" -62.200.76.248 - - [09/May/2009:21:06:02 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/url?sa=t&source=web&ct=res&cd=30&url=http%3A%2F%2Fwww.sparrowos.com%2F&ei=elEGSu3UF5WOMtmwkM8N&rct=j&q=open+source+operating+system&usg=AFQjCNHtcMmLrLaSdilrJ1OUqGvEZC49XA" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.200.76.248 - - [09/May/2009:21:06:02 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.200.76.248 - - [09/May/2009:21:06:08 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.200.76.248 - - [09/May/2009:21:06:11 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)" "www.sparrowos.com" -60.101.29.224 - - [09/May/2009:21:11:46 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.29.224 - - [09/May/2009:21:11:52 -0700] "GET /fps.html HTTP/1.1" 200 33359 "-" "msnbot/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -29.174.77.249 - - [09/May/2009:21:13:39 -0700] "GET /media/CtrlR1.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/ctrlr1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.249 - - [09/May/2009:21:13:40 -0700] "GET /media/CtrlR1.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/ctrlr1.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -11.52.122.106 - - [09/May/2009:21:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -93.112.232.208 - - [09/May/2009:21:18:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -63.236.187.143 - - [09/May/2009:21:22:22 -0700] "GET / HTTP/1.1" 200 81188 "-" "Opera/9.64 (Macintosh; PPC Mac OS X; U; en) Presto/2.1.1" "www.sparrowos.com" -63.236.187.143 - - [09/May/2009:21:22:22 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "-" "Opera/9.64 (Macintosh; PPC Mac OS X; U; en) Presto/2.1.1" "www.sparrowos.com" -18.146.50.156 - - [09/May/2009:21:22:23 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.166.4398193359375" "www.sparrowos.com" -249.240.181.180 - - [09/May/2009:21:23:02 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -249.240.181.180 - - [09/May/2009:21:23:09 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -249.240.181.180 - - [09/May/2009:21:23:09 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -63.236.187.143 - - [09/May/2009:21:24:51 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "-" "Opera/9.64 (Macintosh; PPC Mac OS X; U; en) Presto/2.1.1" "www.sparrowos.com" -63.236.187.143 - - [09/May/2009:21:24:52 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Opera/9.64 (Macintosh; PPC Mac OS X; U; en) Presto/2.1.1" "www.sparrowos.com" -249.240.181.180 - - [09/May/2009:21:25:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -249.240.181.180 - - [09/May/2009:21:25:15 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042523 Ubuntu/8.10 (intrepid) Firefox/3.0.10" "www.sparrowos.com" -63.236.187.143 - - [09/May/2009:21:28:20 -0700] "GET / HTTP/1.1" 304 - "-" "Opera/9.64 (Macintosh; PPC Mac OS X; U; en) Presto/2.1.1" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:21:34:22 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -29.174.77.88 - - [09/May/2009:21:48:43 -0700] "GET /media/TimeOut.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/timeout.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.88 - - [09/May/2009:21:48:43 -0700] "GET /media/TimeOut.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/timeout.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -140.179.243.106 - - [09/May/2009:21:51:21 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 196608 "-" "Python-urllib/2.5" "www.sparrowos.com" -140.179.243.106 - - [09/May/2009:21:51:24 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 1048576 "-" "Mozilla/4.0" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:21:51:31 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -140.179.243.106 - - [09/May/2009:21:51:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 206 3659776 "-" "Mozilla/4.0" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:04 -0700] "GET /images/SparrowOS421.JPG HTTP/1.1" 404 275 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:54 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://forum.osdev.org/viewtopic.php?f=1&t=12087&start=255" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:54 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:54 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:54 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:55 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:55 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:55 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:55 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:55:56 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:01 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:01 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:01 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:01 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:01 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:02 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:04 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -168.121.110.206 - - [09/May/2009:21:56:07 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -62.225.86.194 - - [09/May/2009:21:56:53 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:22:00:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -78.172.103.129 - - [09/May/2009:22:00:45 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -93.112.232.80 - - [09/May/2009:22:06:24 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -106.236.2.26 - - [09/May/2009:22:06:40 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -106.236.2.26 - - [09/May/2009:22:11:58 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:22:13:10 -0700] "GET /files/SparrowOSCD.ISO HTTP/1.1" 200 262144 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:22:13:25 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:22:13:25 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:22:13:30 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 262144 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SU 3.21; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)" "www.sparrowos.com" -72.221.177.204 - - [09/May/2009:22:13:31 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 2031616 "-" "NSPlayer/11.00.6001.7001 WMFSDK/11.00.6001.7001" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:15:33 -0700] "GET / HTTP/1.1" 200 81223 "http://www.google.com/search?hl=en&q=64-bit+open+source" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:15:36 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:15:39 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 131072 "-" "contype" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:15:47 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -62.102.171.31 - - [09/May/2009:22:17:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -78.172.103.203 - - [09/May/2009:22:19:52 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -11.0.0.156 - - [09/May/2009:22:25:25 -0700] "GET / HTTP/1.1" 200 81188 "http://en.wikipedia.org/wiki/SparrowOS" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.0.0.156 - - [09/May/2009:22:25:25 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.0.0.156 - - [09/May/2009:22:25:25 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.0.0.156 - - [09/May/2009:22:25:47 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.0.0.156 - - [09/May/2009:22:25:50 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:12 -0700] "GET /contact.html HTTP/1.1" 200 5360 "http://www.reddit.com/r/programming/comments/7e8hp/new_64bit_free_open_source_operating_system_not_a/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:17 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:35 -0700] "GET /detailedlinfo.html HTTP/1.1" 200 4005 "http://www.sparrowos.com/contact.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:37 -0700] "GET /sitebuilder/images/SCRN0000a-640x480.png HTTP/1.1" 200 15512 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:37 -0700] "GET /sitebuilder/images/SCRN0001a-640x480.png HTTP/1.1" 200 20313 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:37 -0700] "GET /images/Promises.jpg HTTP/1.1" 200 76295 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -93.246.78.205 - - [09/May/2009:22:26:37 -0700] "GET /sitebuilder/images/SCRN0002a-640x480.png HTTP/1.1" 200 11969 "http://www.sparrowos.com/detailedlinfo.html" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)" "www.sparrowos.com" -98.141.160.83 - - [09/May/2009:22:29:29 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -147.113.65.160 - - [09/May/2009:22:29:51 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.mu/search?hl=en&q=64+bit+operating+system&btnG=Google+Search&meta=&aq=f&oq=" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.13;MEGAUPLOAD 1.0" "www.sparrowos.com" -147.113.65.160 - - [09/May/2009:22:29:52 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.13;MEGAUPLOAD 1.0" "www.sparrowos.com" -147.113.65.160 - - [09/May/2009:22:30:00 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/11.0.5721.5145" "www.sparrowos.com" -147.113.65.160 - - [09/May/2009:22:30:11 -0700] "GET /media/Demo1.smi HTTP/1.1" 404 275 "-" "Windows-Media-Player/11.0.5721.5145" "www.sparrowos.com" -144.97.246.227 - - [09/May/2009:22:31:22 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)" "www.sparrowos.com" -144.97.246.227 - - [09/May/2009:22:32:20 -0700] "GET / HTTP/1.0" 200 81188 "-" "Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)" "www.sparrowos.com" -106.236.2.254 - - [09/May/2009:22:34:12 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -62.102.171.110 - - [09/May/2009:22:34:33 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -147.113.65.160 - - [09/May/2009:22:34:34 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 5767168 "-" "NSPlayer/11.0.5721.5145 WMFSDK/11.0" "www.sparrowos.com" -147.113.65.160 - - [09/May/2009:22:34:37 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 6160384 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/2.0.0.13;MEGAUPLOAD 1.0" "www.sparrowos.com" -106.236.2.182 - - [09/May/2009:22:36:20 -0700] "GET / HTTP/1.1" 200 81188 "http://www.sparrowos.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.132 - - [09/May/2009:22:47:46 -0700] "GET /media/Squirt.wmv HTTP/1.0" 200 196608 "http://www.sparrowos.com/squirt.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:22:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -164.5.9.17 - - [09/May/2009:22:57:41 -0700] "GET /robots.txt HTTP/1.0" 404 275 "-" "Mozilla/5.0 (compatible; Ask Jeeves/Teoma; +http://about.ask.com/en/docs/about/webmasters.shtml)" "www.sparrowos.com" -164.5.9.17 - - [09/May/2009:22:57:41 -0700] "GET / HTTP/1.0" 200 81188 "-" "Mozilla/5.0 (compatible; Ask Jeeves/Teoma; +http://about.ask.com/en/docs/about/webmasters.shtml)" "www.sparrowos.com" -11.52.122.89 - - [09/May/2009:23:00:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -62.102.171.88 - - [09/May/2009:23:17:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -29.174.77.16 - - [09/May/2009:23:22:25 -0700] "GET /media/X-Caliber.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/x-caliber.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -29.174.77.16 - - [09/May/2009:23:22:25 -0700] "GET /media/X-Caliber.wmv HTTP/1.0" 404 275 "http://www.sparrowos.com/x-caliber.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" "www.sparrowos.com" -144.159.80.241 - - [09/May/2009:23:24:19 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 2031616 "http://www.globalfreeware.com/DcatGUI-download.html" "Opera/10.00 (Windows NT 5.1; U; Edition Turbo; en) Presto/2.2.0" "www.sparrowos.com" -11.52.122.147 - - [09/May/2009:23:34:26 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -78.230.233.72 - - [09/May/2009:23:35:04 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4708352 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -63.251.95.63 - - [09/May/2009:23:42:27 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 983040 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.52.122.106 - - [09/May/2009:23:51:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -186.131.192.247 - - [09/May/2009:23:55:03 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -107.227.215.25 - - [09/May/2009:23:59:17 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -107.227.215.25 - - [09/May/2009:23:59:17 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -107.227.215.25 - - [09/May/2009:23:59:18 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1" "www.sparrowos.com" -107.227.215.25 - - [09/May/2009:23:59:18 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "Safari5525.27.1 CFNetwork/422.15.2 Darwin/9.6.0 (i386) (MacBookPro3%2C1)" "www.sparrowos.com" -107.227.215.25 - - [09/May/2009:23:59:27 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 1114112 "-" "QuickTime/7.6 (qtver=7.6;cpu=IA32;os=Mac 10.5.6)" "www.sparrowos.com" -216.90.135.155 - - [09/May/2009:23:59:38 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -216.90.135.155 - - [09/May/2009:23:59:38 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -216.90.135.155 - - [09/May/2009:23:59:38 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -216.90.135.155 - - [09/May/2009:23:59:39 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -216.90.135.155 - - [09/May/2009:23:59:42 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -29.6.157.233 - - [10/May/2009:00:00:05 -0700] "GET / HTTP/1.1" 200 81188 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -29.6.157.233 - - [10/May/2009:00:00:06 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -216.90.135.155 - - [10/May/2009:00:00:09 -0700] "GET /media/Demo1.wmv HTTP/1.1" 206 196608 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -29.6.157.233 - - [10/May/2009:00:00:18 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 196608 "-" "NSPlayer/11.0.5721.5145" "www.sparrowos.com" -62.102.171.122 - - [10/May/2009:00:00:27 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [10/May/2009:00:01:15 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.122.113037109375" "www.sparrowos.com" -196.35.117.86 - - [10/May/2009:00:02:15 -0700] "GET / HTTP/1.1" 200 81188 "http://en.wikipedia.org/wiki/SparrowOS" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -196.35.117.86 - - [10/May/2009:00:02:17 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -107.227.215.25 - - [10/May/2009:00:02:50 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 458752 "-" "QuickTime/7.6 (qtver=7.6;cpu=IA32;os=Mac 10.5.6)" "www.sparrowos.com" -196.35.117.86 - - [10/May/2009:00:03:28 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 720896 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -196.35.117.86 - - [10/May/2009:00:03:35 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "http://www.sparrowos.com/" "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1" "www.sparrowos.com" -196.35.117.86 - - [10/May/2009:00:03:41 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "-" "NSPlayer/11.0.5721.5251" "www.sparrowos.com" -29.6.157.233 - - [10/May/2009:00:04:07 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 32309248 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -29.6.157.233 - - [10/May/2009:00:04:09 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 25559040 "-" "NSPlayer/11.0.5721.5145 WMFSDK/11.0" "www.sparrowos.com" -107.227.215.25 - - [10/May/2009:00:04:28 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 229817 "-" "Safari5525.27.1 CFNetwork/422.15.2 Darwin/9.6.0 (i386) (MacBookPro3%2C1)" "www.sparrowos.com" -196.35.117.86 - - [10/May/2009:00:05:24 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 66292058 "-" "NSPlayer/11.0.5721.5251 WMFSDK/11.0" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:12:32 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:13:10 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -93.162.2.66 - - [10/May/2009:00:14:57 -0700] "GET / HTTP/1.1" 200 81188 "http://www.google.com/search?q=IBM+pc+operating+system&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 FBSMTWB" "www.sparrowos.com" -93.162.2.66 - - [10/May/2009:00:14:57 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 FBSMTWB" "www.sparrowos.com" -93.162.2.66 - - [10/May/2009:00:15:29 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 5505024 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 FBSMTWB" "www.sparrowos.com" -93.162.2.66 - - [10/May/2009:00:15:32 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 FBSMTWB" "www.sparrowos.com" -62.102.171.181 - - [10/May/2009:00:17:25 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -18.146.50.156 - - [10/May/2009:00:17:54 -0700] "HEAD /SparrowOSCD.ISO HTTP/1.1" 206 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.165.2801513671875" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:20:49 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -240.207.140.219 - - [10/May/2009:00:21:33 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 327680 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2)" "www.sparrowos.com" -240.207.140.219 - - [10/May/2009:00:21:56 -0700] "GET /SparrowOSCD.ISO HTTP/1.1" 200 4708352 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:23:46 -0700] "GET / HTTP/1.1" 200 81188 "http://www.linuxhaxor.net/page/14/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:23:47 -0700] "GET /images/Header.JPG HTTP/1.1" 200 2982 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:23:48 -0700] "GET /media/Demo1.wmv HTTP/1.1" 200 262144 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:23:49 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:23:51 -0700] "GET /favicon.ico HTTP/1.1" 404 275 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:02 -0700] "GET /screenshots.html HTTP/1.1" 200 11591 "http://www.sparrowos.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:03 -0700] "GET /images/CTrace.JPG HTTP/1.1" 200 72254 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:03 -0700] "GET /images/Collision.JPG HTTP/1.1" 200 77496 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:03 -0700] "GET /images/Rocks.JPG HTTP/1.1" 200 38304 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:03 -0700] "GET /images/DotNet.JPG HTTP/1.1" 200 77806 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:03 -0700] "GET /images/Dollar.JPG HTTP/1.1" 200 92536 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:03 -0700] "GET /images/Tanks.JPG HTTP/1.1" 200 110155 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:05 -0700] "GET /images/FlightSim2.JPG HTTP/1.1" 200 58066 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:05 -0700] "GET /images/FPS.JPG HTTP/1.1" 200 18883 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:06 -0700] "GET /images/Span.JPG HTTP/1.1" 200 30960 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:06 -0700] "GET /images/Squirt.JPG HTTP/1.1" 200 17481 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:06 -0700] "GET /images/XCaliber.jpg HTTP/1.1" 200 20758 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:07 -0700] "GET /images/Organ.jpg HTTP/1.1" 200 38835 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -146.64.50.28 - - [10/May/2009:00:24:07 -0700] "GET /images/SparrowOSV505.jpg HTTP/1.1" 200 80248 "http://www.sparrowos.com/screenshots.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:29:54 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 534784 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:31:11 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:31:29 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -11.52.122.89 - - [10/May/2009:00:34:24 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -11.152.190.214 - - [10/May/2009:00:36:14 -0700] "GET /SparrowOSCD.ISO HTTP/1.0" 200 4708352 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)" "www.sparrowos.com" -60.101.75.201 - - [10/May/2009:00:51:09 -0700] "GET /robots.txt HTTP/1.1" 404 275 "-" "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -60.101.75.201 - - [10/May/2009:00:51:09 -0700] "GET /span.html HTTP/1.1" 200 3929 "-" "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" -62.102.171.88 - - [10/May/2009:00:51:23 -0700] "GET /v502.html HTTP/1.1" 404 275 "http://www.semantic.hn/" "AppEngine-Google; (+http://code.google.com/appengine)" "www.sparrowos.com" -60.101.246.42 - - [10/May/2009:00:58:41 -0700] "GET /contact.html HTTP/1.0" 304 - "-" "msnbot/2.0b (+http://search.msn.com/msnbot.htm)" "www.sparrowos.com" diff --git a/SparrowOS/Doc/ChangeLog.TXT b/SparrowOS/Doc/ChangeLog.TXT deleted file mode 100644 index c3dc42e..0000000 --- a/SparrowOS/Doc/ChangeLog.TXT +++ /dev/null @@ -1,81 +0,0 @@ -$WW,1$$FG,2$Use $LK,"R","MN:R"$() to rename if I change a label.$FG$ - -$IV,1$----11/26/12 23:05:27----$IV,0$ -* Added graphics to $LK,"::/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP.Z","FI:::/SparrowOS/Apps/MusicOrgan/Examples/mightest.CPP.Z"$. - -$IV,1$----11/25/12 13:04:05----$IV,0$ -* $BK,1$SparrowOS version 1.02 Released$BK,0$ -* Added $LK,"OPTf_WARN_DUP_TYPES","MN:OPTf_WARN_DUP_TYPES"$. -* Converted $FG,2$U64$FG$ to $FG,2$I64$FG$ except where required. -* Got rid of $FG,2$typedef$FG$. -* Got rid of $FG,2$pass-by-ref$FG$ fun args. -* Got rid of $FG,2$result$FG$ special variable. -* $LK,"R","MN:R"$("BoolI8","Bool"); -* $LK,"R","MN:R"$("BoolI64","Bool"); - -$IV,1$----11/21/12 12:09:36----$IV,0$ -* Added $FG,2$VMWare$FG$ install. - -$IV,1$----11/15/12 12:00:17----$IV,0$ -* Added $LK,"::/SparrowOS/Demo/Asm/BuzzFizz.CPP.Z","FI:::/SparrowOS/Demo/Asm/BuzzFizz.CPP.Z"$ -* $LK,"R","MN:R"$("CDirDel","CDirEntryDel"); - -$IV,1$----11/09/12 02:20:37----$IV,0$ -* Added $LK,"Suspend","MN:Suspend"$() and $LK,"IsSuspended","MN:IsSuspended"$(). - -$IV,1$----11/03/12 11:52:45----$IV,0$ -* Made $LK,"Sqr","MN:Sqr"$(), $LK,"Abs","MN:Abs"$(), $LK,"Sqrt","MN:Sqrt"$(), $LK,"Sin","MN:Sin"$(), $LK,"Cos","MN:Cos"$(), $LK,"Tan","MN:Tan"$() and $LK,"ATan","MN:ATan"$() in-line. - -$IV,1$----11/02/12 11:28:40----$IV,0$ -* Added graphics to $LK,"::/SparrowOS/Apps/MusicOrgan/Examples/furnishing.CPP.Z","FI:::/SparrowOS/Apps/MusicOrgan/Examples/furnishing.CPP.Z"$. - -$IV,1$----10/31/12 08:45:21----$IV,0$ -* $LK,"R","MN:R"$("Unwrap","Wrap"); -* Worked on $LK,"::/SparrowOS/Apps/Pilgrims/Pilgrims.CPP.Z","FI:::/SparrowOS/Apps/Pilgrims/Pilgrims.CPP.Z"$. - -$IV,1$----10/29/12 17:20:23----$IV,0$ -* Added .BMP and .GRA to $LK,"Type","MN:Type"$(). -* Added $LK,"Type","MN:Type"$() to $LK,"TermRightClickLink","MN:TermRightClickLink"$(). -* Added $LK,"DocPutBMPFile","MN:DocPutBMPFile"$() and $LK,"DocPutGRAFile","MN:DocPutGRAFile"$(). -* Added $LK,"::/SparrowOS/Adam/Ctrls/CtrlsButton.CPP.Z","FI:::/SparrowOS/Adam/Ctrls/CtrlsButton.CPP.Z"$ to the API. - -$IV,1$----10/27/12 11:09:21----$IV,0$ -* Added $LK,"::/SparrowOS/Demo/Graphics/CommonAncestor.CPP.Z","FI:::/SparrowOS/Demo/Graphics/CommonAncestor.CPP.Z"$. - -$IV,1$----10/26/12 05:06:53----$IV,0$ -* Changed to $FG,2$/0000Boot/0000OSMain.BIN.C$FG$. -* Added $LK,"DOF_WIN_MAX","MN:DOF_WIN_MAX"$. - -$IV,1$----10/22/12 21:10:06----$IV,0$ -* Worked on $LK,"risen","FI:::/SparrowOS/Apps/MusicOrgan/Examples/risen.CPP.Z"$, $LK,"cosam","FI:::/SparrowOS/Apps/MusicOrgan/Examples/cosam.CPP.Z"$, $LK,"night","FI:::/SparrowOS/Apps/MusicOrgan/Examples/night.CPP.Z"$, $LK,"abiding","FI:::/SparrowOS/Apps/MusicOrgan/Examples/abiding.CPP.Z"$ and $LK,"thereupon","FI:::/SparrowOS/Apps/MusicOrgan/Examples/thereupon.CPP.Z"$. - -$IV,1$----10/16/12 10:22:14----$IV,0$ -* $BK,1$SparrowOS version 1.01 Released$BK,0$ -* $LK,"R","MN:R"$("BigEndian","Endian"); -* Added $FG,2$result$FG$ as a built-in local variable like $FG,2$this$FG$ in C++. - -$IV,1$----10/13/12 19:52:59----$IV,0$ -* Fixed bug in comma'ed leading zeros in $LK,"PrintF","MN:PrintF"$(). -* Added octal to $LK,"PrintF","MN:PrintF"$(). -* Added comma flag to hex, octal and binary in $LK,"PrintF","MN:PrintF"$(). - -$IV,1$----10/12/12 05:16:20----$IV,0$ -* Changed Binary File Format. $LK,"EIE_END","MN:EIE_END"$ - -$IV,1$----10/06/12 12:37:05----$IV,0$ -* Made $LK,"WinFocus","MN:WinFocus"$(), $LK,"Go1","MN:Go1"$(), $LK,"Go2","MN:Go2"$() and $LK,"Go3","MN:Go3"$(). -* Added $LK,"Help","MN:Help"$(), $LK,"VGAFlush","MN:VGAFlush"$() and $FG,2$$FG$. -* Added $LK,"::/SparrowOS/Demo/DbgDemo.CPP.Z","FI:::/SparrowOS/Demo/DbgDemo.CPP.Z"$. - -$IV,1$----10/05/12 21:15:13----$IV,0$ -* Made so arrays with dimensions in functions args are pass-by-ref. They were not implemented. -* Fixed compiler bug with extern zero length arrays[]. -* Added $LK,"::/SparrowOS/Demo/Graphics/SpritePutExt.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePutExt.CPP.Z"$. - -$IV,1$----10/03/12 07:59:33----$IV,0$ -* Expanded $FG,2$CDocEntry.flags$FG$ to $FG,2$CDocEntry.flags1$FG$ and $FG,2$CDocEntry.flags2$FG$. -* Added $FG,2$+BP$FG$ $LK,"DOCEF2_BIN_PTR_LINK","MN:DOCEF2_BIN_PTR_LINK"$ flag to allow importing sprites from other files. - -$IV,1$----10/02/12 20:55:02----$IV,0$ -* $BK,1$SparrowOS version 1.00 Released$BK,0$ -* Change "$FG,2$$$PI$FG$" to "$FG,2$$$SP$FG$". I made an alias in $LK,"ST_DOC_CMDS","MN:ST_DOC_CMDS"$, for now. \ No newline at end of file diff --git a/SparrowOS/Doc/Char.TXT b/SparrowOS/Doc/Char.TXT deleted file mode 100644 index 722b247..0000000 --- a/SparrowOS/Doc/Char.TXT +++ /dev/null @@ -1,16 +0,0 @@ -$WW,1$A $FG,2$Char$FG$acter is a single byte holding an ASCII code for a letter, num or sym. The $FG,2$SparrowOS$FG$ term is a $FG,2$U8$FG$. - -ASCII values range from 0 to 127. Values below 32 are ctrl key's. So, an ASCII #3 is a $FG,2$$FG$. SparrowOS uses a few nonstandard values. In SparrowOS ASCII #5 is the cursor location, ASCII 28 is $FG,2$$FG$ and ASCII #31 is a $FG,2$$FG$. See $LK,"Char Definitions","MN:CH_SHIFT_SPACE"$. - -A $FG,2$Key$FG$ is typically specified with a scan code. SparrowOS scan codes contain the key value in the lowest $FG,2$U8$FG$, and flags in the upper bytes. See $LK,"Scan Code Flags","MN:SCF_CTRL"$ and $LK,"Scan Codes","MN:SC_INS"$. - -SparrowOS stores scan codes in 8 bytes. - $FG,2$Byte 0$FG$ is the code with left and right keys combined. - $FG,2$Byte 1-3$FG$ are flags - $FG,2$Byte 4$FG$ is the code with left and right distinct. - $FG,2$Byte 5-7$FG$ are flags - -Run the program $LK,"::/SparrowOS/Demo/MsgLoop.CPP.Z","FI:::/SparrowOS/Demo/MsgLoop.CPP.Z"$ to examine scan code. - -A $FG,2$String$FG$ is a bunch of ASCII characters terminated with a zero. - diff --git a/SparrowOS/Doc/Confuse.TXT b/SparrowOS/Doc/Confuse.TXT deleted file mode 100644 index a45c676..0000000 --- a/SparrowOS/Doc/Confuse.TXT +++ /dev/null @@ -1,49 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Clearing-up Confusions"$$FG$ - -* I, Terry A. Davis, wrote every one of the $TX+D,"134,203","DD_SPARROWOS_LOC"$ lines of SparrowOS over the past $TX+D,"9.1","DD_SPARROWOS_AGE"$ years (full-time). It runs on bare hardware with no layering, libraries, tools, modules or anything from other sources. It's 100% independent and stands alone. It has no networking and certainly doesn't call home. Every line of SparrowOS src code is including in all distributions, from the kernel to the compiler to the boot loaders. - -* SparrowOS does not execute code not written by me and any time except for a few BIOS calles for cfguration. - -* SparrowOS is 100% independent -- it does not access the files of your primary operating system. It will work as the only operating system on your computer. - -* SparrowOS is 100% written from scratch. There is no Linux or GNU or any other code in SparrowOS. Yes, I wrote the compiler from scratch. (I probably need to repeat this a few times.) - -* SparrowOS is an operating system, not a browser. The cmd line has active links. They link to local files. - -* SparrowOS compiles, not "interprets", and uses no "byte code" anywhere. I use the word "script" sometimes for stuff, but it's actually compiled. - -* I am an evolutionist. "$FG,2$Adam$FG$" is a better term for the father of all tasks than "$FG,2$root$FG$" was! $FG,2$OSMain$FG$ is the closest thing to a kernel, but everybody has kernel privilege, so "$FG,2$Kernel$FG$" is deceptive! - -* $LK,"Bt","MN:Bt"$() is "bit test", like the x86 instruction, not "bit torrent". - -* $LK,"Fs","MN:Fs"$ is a segment register, not "file system". (It is kept pointing to the current task's record.) There is no memory segmentation -- FS and GS are used as general purpose registers, more or less. - -* SparrowOS uses a flavor of C/C++. It is not PASCAL. I altered the syntax making parenthesis optional on function calls with no paramaters. - -* $LK,"Sleep","MN:Sleep"$() makes a program pause. It is not hybernation for a laptop. - -* $LK,"Yield","MN:Yield"$() saves the current task's registers (context) and loads in the next task. When waiting, it's better to do this than check a condition in a loop until you get preempted. Checking a condition until you get preempted wastes CPU. SparrowOS does not use virtual memory, so $LK,"Yield","MN:Yield"$() involves no disk activity. A swap takes half a microsecond. See $LK,"::/SparrowOS/Demo/Lectures/Spinning.CPP.Z","FI:::/SparrowOS/Demo/Lectures/Spinning.CPP.Z"$. - -* I use the term "JIT compilation". This means it is compiled and executable code placed into mem, ready to be called. - -* Files with names ending in "Z" are compressed, not encrypted. $LK,"Copy","MN:Copy"$() or rename them with $LK,"Move","MN:Move"$() to store them uncompressed. - -* SparrowOS is open src and every bit of the src code is included in the distribution. Use $LK,"InstallBoot","MN:InstallBoot"$() to compile the kernel and compiler. - -* SparrowOS does not use object files or a linker. You can link $FG,4$.BIN.Z$FG$ modules at $LK,"Load","MN:Load"$() time, though. - -* The swap rate is high because tasks stay in the queue and poll conditions and swap-out voluntarily. Swaps also occur at $TX+D,"1000 ","JIFFY_FREQ"$Hz due to the timer interrupt. See $LK,"JIFFY_FREQ","MN:JIFFY_FREQ"$. - -* Refresh rate is how often SparrowOS updates screen mem. It is not syncronized to the hardware rate, having nothing to do with it. - -* No application has a lock on the speaker so apps can interfere with each other and SparrowOS makes speaker noise during disk access on purpose. - -* During boot, SparrowOS reads-in all text files in the $FG,2$/SparrowOS$FG$ directory tree and collects statistic on them. It makes a sparse matrix containing the frequency each word was followed by each other word. This makes it able to predict the next word while you type. This feature is called $FG,2$WordStat$FG$. - -* There are no mem leaks. SparrowOS allocates mem as more items are displayed on the screen. SparrowOS allocates mem for code as it is compiled at the cmd line. If you $FG,2$#include$FG$ a file twice, it allocates more mem for it. If you have a 50,000 line program with each line taking twenty bytes on a machine with 1 Gig, you could $FG,2$#include$FG$ it a thousand times if it had no data or graphics and no other use of mem. Code entered at the cmd line gets allocated and persists. I don't want to hear any bullshit about leaks unless you actually run-out. If it bothers you, hit $FG,2$$FG$ and $FG,2$, $FG$periodically$FG$. Use the pop-up flag on macros in your menu to spawn new tasks, run applications and free the applications when they are finished and everything will be fine. Small mem chunks stick to the task when they are freed until it is killed. The only way to get in trouble involves allocating multiple Meg chunks and freeing them. These can only be reused if the same size gets allocated again. Use $LK,"HeapLog","MN:HeapLog"$() and $LK,"HeapLogRep","MN:HeapLogRep"$() to see who allocated mem and didn't free it. - -* The editor periodically takes a snap-shot for $FG,2$UNDO$FG$ and this looks like a memory leak. - - -$FG,8$ -* "Linux" is probably a trademark owned by Linus Torvalds. diff --git a/SparrowOS/Doc/Constitution.TXT b/SparrowOS/Doc/Constitution.TXT deleted file mode 100644 index d86490c..0000000 --- a/SparrowOS/Doc/Constitution.TXT +++ /dev/null @@ -1,34 +0,0 @@ -$FG,5$$WW,1$$TX+CX,"SparrowOS Constitution"$$FG$ - -The goal of SparrowOS is to provide an ideal environment for recreational programming and not imitate $FG,2$Linux$FG$. SparrowOS is orders of magnitude simpler than $FG,2$Linux$FG$ to better fulfill the promise of $FG,2$open source$FG$. The vision for SparrowOS is a 64-bit, souped-up, multitasking, multicore $FG,2$Commodore 64$FG$ with a $FG,2$C+$FG$ shell instead of $FG,2$BASIC$FG$ that runs $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ code. - -SparrowOS holds no standards sacred -- everything is freshly designed from scratch. This is not a 1970's main frame operating system and, no, it has nothing to do with $FG,2$Commodore 64$FG$ emulation -- it's $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$. - - -1) SparrowOS is $FG,2$ring-0-only$FG$, running everything in kernel mode including applications. You have full access to memory, I/O ports, instructions, etc. at all times, because that's fun. - -2) SparrowOS will always $FG,2$identity-map$FG$ memory in a $FG,2$single-address-map$FG$ configuration. (Virtual addresses are always kept equal to physical addresses with a single map for all tasks on all cores.) It's as though paging is not used. - -3) SparrowOS will always be for one platform -- $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ PC compatibles. - -4) SparrowOS will never have networking, so malware is less of an issue. - -5) SparrowOS will always have one video mode, $FG,2$640x480$FG$ by 16 colors, unless that mode becomes unavailable on computers in the future. - -6) SparrowOS will always be $FG,2$free$FG$. I might sell applications, support, or, possibly, do adware. - -7) SparrowOS will always be $FG,2$100% open source$FG$ with all source included, unless device drivers or something can only be included with non-disclosure agreements. - -8) All function args and returns will be 64-bit. No plans for C++. - -9) SparrowOS documents are not for printing. They're dynamic and intended for the screen. There will always be just one font, a fixed-width font. No Unicode, just ASCII. - -10) SparrowOS is not for multimedia. Games will be created by programmers, not artists. Sounds and images will be, primarily, calculated in real-time, not fetched. - -11) All functions, variables and class members will be accessible. There are no C++ $FG,2$public$FG$/$FG,2$private$FG$ protections and all functions, even secondary ones in the kernel, can be called. - -12) $FG,4$$BK,1$Backward compatibility is NOT guaranteed.$FG$$BK,0$ You are safest working with $FG,2$JIT$FG$ compilation instead of $FG,2$AOT$FG$ static binaries because I can add members to classes, reorder members in classes, add default args to existing functions, change $FG,2$#define$FG$ values, etc. all without breaking compatibility. - -$FG,8$ -* "Commodore 64" was a trademark of Commodore Business Machines. -* "Linux" is probably a trademark owned by Linus Torvalds. diff --git a/SparrowOS/Doc/Ctrls.TXT b/SparrowOS/Doc/Ctrls.TXT deleted file mode 100644 index 4faf2b2..0000000 --- a/SparrowOS/Doc/Ctrls.TXT +++ /dev/null @@ -1,3 +0,0 @@ -$WW,1$To create a SparrowOS graphic ctrl, you define call-back functions and insert a $LK,"CCtrl","MN:CCtrl"$ structure in the $LK,"CTask","MN:CTask"$ queue. See $LK,"::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z"$, $LK,"::/SparrowOS/Demo/Graphics/ScrollBars.CPP.Z","FI:::/SparrowOS/Demo/Graphics/ScrollBars.CPP.Z"$ and $LK,"TermButtonNew","FF:::/SparrowOS/Adam/WallPaper.CPP.Z,TermButtonNew"$. There is a managed-code ctrl generator, if you press $FG,2$$FG$. - - diff --git a/SparrowOS/Doc/Customize.TXT b/SparrowOS/Doc/Customize.TXT deleted file mode 100644 index c7b69f1..0000000 --- a/SparrowOS/Doc/Customize.TXT +++ /dev/null @@ -1,9 +0,0 @@ - -$WW,1$* You can adjust the mouse movement rate by setting global vars in your start-up file. See $LK,"mouse scale","FF:HOME/Adam3aLocalize.CPP.Z,mxx_scale"$. - -* You can set your local time zone by setting the $FG,4$local_time_offset$FG$ global var in a start-up file. It's units are $LK,"CDATE_FREQ","MN:CDATE_FREQ"$. See $LK,"local time","FF:HOME/Adam3aLocalize.CPP.Z,local_time"$. See $LK,"DateTime.CPP.Z","FI:::/SparrowOS/Demo/DateTime.CPP.Z"$ for changing date/time format maps. - -* If sound doesn't work, run $LK,"::/SparrowOS/Adam/Snd/HDCfg.CPP.Z","FI:::/SparrowOS/Adam/Snd/HDCfg.CPP.Z"$ or, comment-out $LK,"#include \"HDAudio\"","FF:HOME/Adam3cSnd.CPP.Z,HDAudio"$ to revert to PC Speaker. - -* Get rid of this msg $LK,"here","FF:HOME/DoItOnce.CPP.Z,Customize.TXT.Z"$. - diff --git a/SparrowOS/Doc/CutCorners.TXT b/SparrowOS/Doc/CutCorners.TXT deleted file mode 100644 index eaf079b..0000000 --- a/SparrowOS/Doc/CutCorners.TXT +++ /dev/null @@ -1,11 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Cut Corners"$ -$FG$ -There are a few places where I cut corners in the interest of not junking-up code. This is part of the SparrowOS mentality. I try not to let, often stupid, legacy compatibility issues enter and junk-up SparrowOS. - -* I made my type-casting operator post-fix because it makes the compiler way cleaner. - -* SparrowOS does not figure-out $FG,2$FAT32$FG$ short name alias numbers. $LK,"FAT32DirNew","MN:FAT32DirNew"$(). It can cause hard drive corruption, so I might have to do it. It would really take a lot of junky code for this hatefully, detestable, legacy issue. "Please don't make me ruin my beautiful shiny-new SparrowOS with that!" I am also not enthused about $FG,2$FAT32$FG$ because it is in patent limbo. $FG,2$FAT32$FG$ might get removed from SparrowOS. There is a SparrowOS native, 64-bit, file system that works perfectly well. $FG,2$FAT32$FG$ is useful, however, because it assists in transferring between dual booted operating systems. - -* I changed the $LK,"asm opcodes","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$ names to remove the ambiguity between instructions with different numbers of arguments, making my $LK,"assembler","FI:::/SparrowOS/Compiler/Assembler.CPP.Z"$ simpler and I did minimal 16-bit asm support, since 64-bit is what you should be using, unless you're doing a $LK,"boot loader","FI:::/SparrowOS/Adam/Boot/BootCD.CPP.Z"$. - -* There are no file-sharing locks of any kind. You're on your own. diff --git a/SparrowOS/Doc/D3.TXT b/SparrowOS/Doc/D3.TXT deleted file mode 100644 index 61bb671..0000000 --- a/SparrowOS/Doc/D3.TXT +++ /dev/null @@ -1,4 +0,0 @@ -$WW,1$SparrowOS has a class for 3 dimensional points consisting of F64s. SparrowOS's compiler is not C++, so it does not support passing or returning values from functions which are not 64-bits, therefore, it can't be implemented with operator overloading. Making all function args and returns 64-bit is a core prinicple of SparrowOS. - -As a courtesy, most of the CD3 functions return the addr of the destination vect, so you can nestle calls. They do not allocate new space for the destination vect. - diff --git a/SparrowOS/Doc/Define.TXT b/SparrowOS/Doc/Define.TXT deleted file mode 100644 index d21b241..0000000 --- a/SparrowOS/Doc/Define.TXT +++ /dev/null @@ -1,6 +0,0 @@ -$WW,1$To allow different languages and customization, SparrowOS uses strings to identify actual strings to be displayed. This is basically a level of indirection. Support for lists of strings is also provided, but it's not especially efficient. - -Each task can load it's own Define strings. If a string is not found, the parent task's table is searched. - -See $LK,"::/SparrowOS/Demo/Define.CPP.Z","FI:::/SparrowOS/Demo/Define.CPP.Z"$. - diff --git a/SparrowOS/Doc/DemoIndex.TXT b/SparrowOS/Doc/DemoIndex.TXT deleted file mode 100644 index 8bad513..0000000 --- a/SparrowOS/Doc/DemoIndex.TXT +++ /dev/null @@ -1,198 +0,0 @@ -$FG,5$$TX+CX,"SparrowOS 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. - -$WW,0$$TR,"Game Making Skills"$ -$ID,2$$TR,"Beginner"$ -$ID,2$$LK,"::/SparrowOS/Demo/Graphics/DotNet.CPP.Z","FI:::/SparrowOS/Demo/Graphics/DotNet.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/LowPassFilter.CPP.Z","FI:::/SparrowOS/Demo/Graphics/LowPassFilter.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/MathAudioDemo.CPP.Z","FI:::/SparrowOS/Demo/Graphics/MathAudioDemo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Lines.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Lines.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/TicTacToe.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/TicTacToe.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MsgLoop.CPP.Z","FI:::/SparrowOS/Demo/MsgLoop.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/ASCIIOrgan.CPP.Z","FI:::/SparrowOS/Demo/Snd/ASCIIOrgan.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Doodle.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Doodle.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Speedline.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Speedline.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Bounce.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Bounce.CPP.Z"$ -$LK,"::/SparrowOS/Demo/KeyBitMap.CPP.Z","FI:::/SparrowOS/Demo/KeyBitMap.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Blink.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Blink.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/WinZBuf.CPP.Z","FI:::/SparrowOS/Demo/Graphics/WinZBuf.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Golf.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Golf.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Mountain.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Mountain.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Coach.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Coach.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z","FI:::/SparrowOS/Demo/Graphics/MyWallPaper.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Digits.CPP.Z","FI:::/SparrowOS/Demo/Digits.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Progress.CPP.Z","FI:::/SparrowOS/Demo/Progress.CPP.Z"$ //has some ASM, just ignore -$LK,"::/SparrowOS/Demo/Graphics/CPUPlot.CPP.Z","FI:::/SparrowOS/Demo/Graphics/CPUPlot.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Dither.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Dither.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Symmetry.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Symmetry.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/SpritePutExt.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePutExt.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Blot.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Blot.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/CaptureScreen.CPP.Z","FI:::/SparrowOS/Demo/Graphics/CaptureScreen.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/EdCSprite.CPP.Z","FI:::/SparrowOS/Demo/Graphics/EdCSprite.CPP.Z"$ -$LK,"::/SparrowOS/Demo/PullDownMenu.CPP.Z","FI:::/SparrowOS/Demo/PullDownMenu.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Demo/GameStarters/Stadium","Cd(\"::/SparrowOS/Demo/GameStarters/Stadium\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/Graphics/Palette.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Palette.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/CircleTrace.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/CircleTrace.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Halogen.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Halogen.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/TheDead.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/TheDead.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Bomber.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Bomber.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/RainDrops.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/RainDrops.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/MorseCode.CPP.Z","FI:::/SparrowOS/Demo/Snd/MorseCode.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/PixelCollision.CPP.Z","FI:::/SparrowOS/Demo/Graphics/PixelCollision.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/BlackDiamond.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/BlackDiamond.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/SpaceShip.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/SpaceShip.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Wenceslas.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Wenceslas.CPP.Z"$ -$ID,-2$$TR,"Intermediate"$ -$ID,2$$LK,"::/SparrowOS/Demo/Graphics/Box.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Box.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Pick.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Pick.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/3DPoly.CPP.Z","FI:::/SparrowOS/Demo/Graphics/3DPoly.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/BSpline.CPP.Z","FI:::/SparrowOS/Demo/Graphics/BSpline.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Extents.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Extents.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Logo.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Logo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/RotateTank.CPP.Z","FI:::/SparrowOS/Demo/Graphics/RotateTank.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Pic2ASCII.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Pic2ASCII.CPP.Z"$ -$LK,"::/SparrowOS/Demo/ScreenCodes.CPP.Z","FI:::/SparrowOS/Demo/ScreenCodes.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/NeatTrick.CPP.Z","FI:::/SparrowOS/Demo/Graphics/NeatTrick.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/CharGraphics.CPP.Z","FI:::/SparrowOS/Demo/Graphics/CharGraphics.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Maze.CPP.Z","FI:::/SparrowOS/Demo/Maze.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/FontEd.CPP.Z","FI:::/SparrowOS/Demo/Graphics/FontEd.CPP.Z"$ -$LK,"::/SparrowOS/Demo/ExtendedChars.CPP.Z","FI:::/SparrowOS/Demo/ExtendedChars.CPP.Z"$ -$LK,"::/SparrowOS/Demo/TimeIns.CPP.Z","FI:::/SparrowOS/Demo/TimeIns.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/WaterFowl.CPP.Z","FI:::/SparrowOS/Demo/Snd/WaterFowl.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/MusicOrgan/Examples","Cd(\"::/SparrowOS/Apps/MusicOrgan/Examples\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/MultiCore/MPPrintF.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/MPPrintF.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Layers3DJob.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Layers3DJob.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/PredatorPrey.CPP.Z","FI:::/SparrowOS/Demo/Graphics/PredatorPrey.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Cartesian.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Cartesian.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Hanoi.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Hanoi.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Life.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Life.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Zing.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Zing.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/ChessNet.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/ChessNet.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Chess.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Chess.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Flowers.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Flowers.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Palindrome.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Palindrome.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/MPAdd.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/MPAdd.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Lock.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Lock.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/LayersSpawn.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/LayersSpawn.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Clouds.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Clouds.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Noise.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Noise.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SliderCtrl.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Bling.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Bling.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/ScrollBars.CPP.Z","FI:::/SparrowOS/Demo/Graphics/ScrollBars.CPP.Z"$ -$LK,"::/SparrowOS/Demo/RegistryDemo.CPP.Z","FI:::/SparrowOS/Demo/RegistryDemo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/BirdLand.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/BirdLand.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/MissileDefense.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/MissileDefense.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/WarGame.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/WarGame.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/BigGuns.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/BigGuns.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Navy.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Navy.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/RawHide.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/RawHide.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/DunGen.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/DunGen.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/Timeout","Cd(\"::/SparrowOS/Apps/Timeout\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/GameStarters/Collision.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Collision.CPP.Z"$ -$ID,-2$$TR,"Advanced"$ -$ID,2$$LK,"::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Primes.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Primes.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Sort.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Sort.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/RadixSort.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/RadixSort.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MultiCore/Interrupts.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Interrupts.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/Pilgrims","Cd(\"::/SparrowOS/Apps/Pilgrims\");Dir;View;\n"$ -$MA+A-X+PU,"::/SparrowOS/Apps/AfterEgypt","Cd(\"::/SparrowOS/Apps/AfterEgypt\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/GameStarters/Varoom.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Varoom.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Shading.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Shading.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Transform.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Transform.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Shadow.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Shadow.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Pick3D.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Pick3D.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/Tanks","Cd(\"::/SparrowOS/Apps/Tanks\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/Graphics/SpriteText.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpriteText.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/GrModels","Cd(\"::/SparrowOS/Apps/GrModels\");Dir;View;\n"$ -$MA+A-X+PU,"::/SparrowOS/Apps/KeepAway","Cd(\"::/SparrowOS/Apps/KeepAway\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/Graphics/Camp.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Camp.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Rocket.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Rocket.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/RocketScience.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/RocketScience.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/MassSpring.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/MassSpring.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Whap.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Whap.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Rocks.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Rocks.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/Squirt.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Squirt.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/X-Caliber","Cd(\"::/SparrowOS/Apps/X-Caliber\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/GameStarters/ZoneOut.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/ZoneOut.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/FPS.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/FPS.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/EagleDive.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/Span","Cd(\"::/SparrowOS/Apps/Span\");Dir;View;\n"$ -$MA+A-X+PU,"::/SparrowOS/Apps/MusicOrgan","Cd(\"::/SparrowOS/Apps/MusicOrgan\");Dir;View;\n"$ -$ID,-2$ -$ID,-2$$TR,"Non-Game Skills"$ -$ID,2$$LK,"::/SparrowOS/Demo/DbgDemo.CPP.Z","FI:::/SparrowOS/Demo/DbgDemo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/PhoneNumWords.CPP.Z","FI:::/SparrowOS/Demo/PhoneNumWords.CPP.Z"$ -$LK,"::/SparrowOS/Demo/SuggestSpelling.CPP.Z","FI:::/SparrowOS/Demo/SuggestSpelling.CPP.Z"$ -$LK,"::/SparrowOS/Demo/WordSearch.CPP.Z","FI:::/SparrowOS/Demo/WordSearch.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/CommonAncestor.CPP.Z","FI:::/SparrowOS/Demo/Graphics/CommonAncestor.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Dsk/DataBase.CPP.Z","FI:::/SparrowOS/Demo/Dsk/DataBase.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z","FI:::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Dsk/FPrintF.CPP.Z","FI:::/SparrowOS/Demo/Dsk/FPrintF.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Dsk/Raw.CPP.Z","FI:::/SparrowOS/Demo/Dsk/Raw.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP.Z","FI:::/SparrowOS/Demo/Dsk/UnusedSpaceRep.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z","FI:::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Lectures/MiniCompiler.CPP.Z","FI:::/SparrowOS/Demo/Lectures/MiniCompiler.CPP.Z"$ -$LK,"::/SparrowOS/Demo/MagicPairs.CPP.Z","FI:::/SparrowOS/Demo/MagicPairs.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/Circuit.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Circuit.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Graphics/PoleZeros.CPP.Z","FI:::/SparrowOS/Demo/Graphics/PoleZeros.CPP.Z"$ -$LK,"::/SparrowOS/Demo/WebLogExample/WebLogRep.CPP.Z","FI:::/SparrowOS/Demo/WebLogExample/WebLogRep.CPP.Z"$ -$LK,"::/SparrowOS/Demo/WebLogExample/WebLogScramble.CPP.Z","FI:::/SparrowOS/Demo/WebLogExample/WebLogScramble.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Apps/TimeClock","Cd(\"::/SparrowOS/Apps/TimeClock\");Dir;View;\n"$ -$MA+A-X+PU,"::/SparrowOS/Apps/Logic","Cd(\"::/SparrowOS/Apps/Logic\");Dir;View;\n"$ -$MA+A-X+PU,"::/SparrowOS/Demo/Lectures","Cd(\"::/SparrowOS/Demo/Lectures\");Dir;View;\n"$ - -$ID,-2$$TR,"SparrowOS Specific"$ -$ID,2$$MA+A-X+PU,"::/SparrowOS/Demo/OldSchool","Cd(\"::/SparrowOS/Demo/OldSchool\");Dir;View;\n"$ -$MA+A-X+PU,"::/SparrowOS/Demo/AutoFile","Cd(\"::/SparrowOS/Demo/AutoFile\");Dir;View;\n"$ -$LK,"::/SparrowOS/Demo/PrintF.CPP.Z","FI:::/SparrowOS/Demo/PrintF.CPP.Z"$ -$LK,"::/SparrowOS/Demo/DateTime.CPP.Z","FI:::/SparrowOS/Demo/DateTime.CPP.Z"$ -$LK,"::/SparrowOS/Demo/SubIntAccess.CPP.Z","FI:::/SparrowOS/Demo/SubIntAccess.CPP.Z"$ -$LK,"::/SparrowOS/Demo/ParenWarn.CPP.Z","FI:::/SparrowOS/Demo/ParenWarn.CPP.Z"$ -$LK,"::/SparrowOS/Demo/CompileDemo.CPP.Z","FI:::/SparrowOS/Demo/CompileDemo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Prompt.CPP.Z","FI:::/SparrowOS/Demo/Prompt.CPP.Z"$ -$LK,"::/SparrowOS/Demo/ClassMeta.CPP.Z","FI:::/SparrowOS/Demo/ClassMeta.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/Form.CPP.Z","FI:::/SparrowOS/Demo/Doc/Form.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/MenuButton.CPP.Z","FI:::/SparrowOS/Demo/Doc/MenuButton.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/MenuSprite.CPP.Z","FI:::/SparrowOS/Demo/Doc/MenuSprite.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/TreeDemo.CPP.Z","FI:::/SparrowOS/Demo/Doc/TreeDemo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Exceptions.CPP.Z","FI:::/SparrowOS/Demo/Exceptions.CPP.Z"$ -$LK,"::/SparrowOS/Demo/StkGrow.CPP.Z","FI:::/SparrowOS/Demo/StkGrow.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/TextDemo.CPP.Z","FI:::/SparrowOS/Demo/Doc/TextDemo.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/CursorMove.CPP.Z","FI:::/SparrowOS/Demo/Doc/CursorMove.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/DemoDoc.TXT.Z","FI:::/SparrowOS/Demo/Doc/DemoDoc.TXT.Z"$ -$LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/FileRead.CPP.Z","FI:::/SparrowOS/Demo/Doc/FileRead.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/Data.CPP.Z","FI:::/SparrowOS/Demo/Doc/Data.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/DefineStr.CPP.Z","FI:::/SparrowOS/Demo/Doc/DefineStr.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/CallBack.CPP.Z","FI:::/SparrowOS/Demo/Doc/CallBack.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z","FI:::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Define.CPP.Z","FI:::/SparrowOS/Demo/Define.CPP.Z"$ -$LK,"EdRenumAsm","MN:EdRenumAsm"$ -$LK,"::/SparrowOS/Demo/Doc/UnusedDefine.CPP.Z","FI:::/SparrowOS/Demo/Doc/UnusedDefine.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/AsmHelloWorld.CPP.Z","FI:::/SparrowOS/Demo/Asm/AsmHelloWorld.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/BuzzFizz.CPP.Z","FI:::/SparrowOS/Demo/Asm/BuzzFizz.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/PutDec.CPP.Z","FI:::/SparrowOS/Demo/Asm/PutDec.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/MulByHand.CPP.Z","FI:::/SparrowOS/Demo/Asm/MulByHand.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/DivByHand.CPP.Z","FI:::/SparrowOS/Demo/Asm/DivByHand.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/AsmAndC.CPP.Z","FI:::/SparrowOS/Demo/Asm/AsmAndC.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Asm/AsmAndC2.CPP.Z","FI:::/SparrowOS/Demo/Asm/AsmAndC2.CPP.Z"$ -$LK,"::/SparrowOS/Demo/GlblVars.CPP.Z","FI:::/SparrowOS/Demo/GlblVars.CPP.Z"$ -$LK,"::/SparrowOS/Demo/WinMgr2.CPP.Z","FI:::/SparrowOS/Demo/WinMgr2.CPP.Z"$ -$LK,"::/SparrowOS/Misc/OSTestSuite.CPP.Z","FI:::/SparrowOS/Misc/OSTestSuite.CPP.Z"$ -$MA+A-X+PU,"::/SparrowOS/Adam","Cd(\"::/SparrowOS/Adam\");Dir;View;\n"$ - -$ID,-2$$TR,"HD Audio"$ -$ID,2$$LK,"::/SparrowOS/Demo/Snd/BeatFreq.CPP.Z","FI:::/SparrowOS/Demo/Snd/BeatFreq.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z","FI:::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/SndScope.CPP.Z","FI:::/SparrowOS/Demo/Snd/SndScope.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/Synth.CPP.Z","FI:::/SparrowOS/Demo/Snd/Synth.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/Record.CPP.Z","FI:::/SparrowOS/Demo/Snd/Record.CPP.Z"$ -$LK,"::/SparrowOS/Demo/Snd/Echo.CPP.Z","FI:::/SparrowOS/Demo/Snd/Echo.CPP.Z"$ -$ID,-2$ \ No newline at end of file diff --git a/SparrowOS/Doc/Doc.TXT b/SparrowOS/Doc/Doc.TXT deleted file mode 100644 index 4404dc1..0000000 --- a/SparrowOS/Doc/Doc.TXT +++ /dev/null @@ -1,8 +0,0 @@ -$WW,1$A SparrowOS document is a $LK,"Circular Queue","HI:Circular Queue"$ of cmds and graphics. See $LK,"CDocEntry","MN:CDocEntry"$ for the entry structure. See $LK,"TipOfDay","MN:TipOfDay"$() for a nice example. - -There is one document format for the editor/ viewer/ browser/ cmd line. - -Each task has a $LK,"CDoc","MN:CDoc"$ queue. There is one $LK,"CDoc","MN:CDoc"$ for the border, called "auxiliary" and one for the main window. The aux is at $FG,4$Fs->next_doc$FG$ and the main at $FG,4$Fs->last_doc$FG$. When dbl buffering, there are two main's. See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$. It is possible to define multiple aux's. To insert a additional aux, use $LK,"DocQueInsRev","MN:DocQueInsRev"$(doc,Fs->next_doc). - -See$LK,"::/SparrowOS/Demo/Doc/CallBack.CPP.Z","FI:::/SparrowOS/Demo/Doc/CallBack.CPP.Z"$ and $LK,"::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z","FI:::/SparrowOS/Demo/Doc/CallBackAux2.CPP.Z"$. - diff --git a/SparrowOS/Doc/GrSprite.TXT b/SparrowOS/Doc/GrSprite.TXT deleted file mode 100644 index f50e3ff..0000000 --- a/SparrowOS/Doc/GrSprite.TXT +++ /dev/null @@ -1,8 +0,0 @@ -$WW,1$A $FG,4$CSprite$FG$, is an ordered list of the $LK,"following","MN:GRST_END"$ elements, created with $FG,2$$FG$$FG$. Normally, they are packed together in a list and the addr of the first is passed to routines. - -See $LK,"::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePlot.CPP.Z"$, $LK,"::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z"$ and $LK,"::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePut.CPP.Z"$ and $LK,"CSpriteMesh","MN:CSpriteMesh"$(). - -Be aware that copying $FG,2$SP$FG$, $FG,2$IB$FG$, or $FG,2$IS$FG$ entries with the clipboard results in duplicate entries with different nums. You can manually remove dups by editing with $FG,2$$FG$ and setting to the original num. - -See $LK,"::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z","FL:::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z,1"$ for how CSprite are stored.$FG$ - diff --git a/SparrowOS/Doc/Grub.TXT b/SparrowOS/Doc/Grub.TXT deleted file mode 100644 index cb934e4..0000000 --- a/SparrowOS/Doc/Grub.TXT +++ /dev/null @@ -1,24 +0,0 @@ -$FG,5$$TX+CX,"The Grub Master Bootloader"$$FG$ - -$WW,1$Here are my $FG,2$grub.cfg$FG$ file entries for my SparrowOS partitions. I don't have the patience to do it correctly and GRUB obfuscates. Chain loading is just the normal way an operating system like Windows boots. They do drives, zero-based, and partitions on drives, one-based. They call traditional partitioning a "msdos" partition and I presume, if there is a new way to partition drives, it has a new name. - -In addition to a Windows and a Linux partition, I have a Primary SparrowOS $FG,2$'D'$FG$, Backup SparrowOS $FG,2$'E'$FG$ and a Transfer $FG,2$'I'$FG$ partition for transferring between Windows and SparrowOS. "hd0" is 1st hard drive, zero-based numbering. "msdos1" is partition #1, traditional msdos partitioning. I keep $FG,2$'D'$FG$, $FG,2$'E'$FG$, and $FG,2$'I'$FG$ identical by frequently copying all files and I use $FG,2$'I'$FG$ to transfer files. They only need to be a couple Gig in size. Every time I copy files, use $LK,"InstallBoot","MN:InstallBoot"$() to $LK,"MakeAll","MN:MakeAll"$ and prepare the partition $LK,"boot sector","FI:::/SparrowOS/Adam/Boot/BootHD.CPP.Z"$ for chainloading by patching the new block address and size of $FG,2$OSMain.BIN.C$FG$. - -menuentry "SparrowOS D" { - insmod chain - set root=(hd0,msdos1) - chainloader +1 -} - -menuentry "SparrowOS E" { - insmod chain - set root=(hd0,msdos5) - chainloader +1 -} - -menuentry "SparrowOS I" { - insmod chain - set root=(hd1,msdos5) - chainloader +1 -} - diff --git a/SparrowOS/Doc/Hash.TXT b/SparrowOS/Doc/Hash.TXT deleted file mode 100644 index 674494e..0000000 --- a/SparrowOS/Doc/Hash.TXT +++ /dev/null @@ -1,4 +0,0 @@ -$WW,1$There are sym(hash) tables maintained by each task. When a sym is not found, the parent task's sym table is checked. All process chain back to the $FG,2$Adam$FG$ task. - -SparrowOS sym tables are implemented with an array of linked-lists. A num is generated from a string to index into it. Since multiple strings could generate the same num, a linked-list is built. Usually, newer entries overshadow older ones unless otherwise specified, in which case old entries are removed. There are various types of entries. See $LK,"Hash Entry Types","MN:HTT_EXPORT_SYS_SYM"$. - diff --git a/SparrowOS/Doc/HelpIndex.TXT b/SparrowOS/Doc/HelpIndex.TXT deleted file mode 100644 index 4a45df0..0000000 --- a/SparrowOS/Doc/HelpIndex.TXT +++ /dev/null @@ -1,183 +0,0 @@ -$LK,"Welcome","FI:::/SparrowOS/Doc/Welcome.TXT.Z"$ $LK,"Trivial Solutions","FI:::/SparrowOS/Doc/TrivialSolutions.TXT.Z"$ -$LK,"Quick Start--Command Line","HI:Cmd Line (Typically)"$ -$LK,"Demo Index","FI:::/SparrowOS/Doc/DemoIndex.TXT.Z"$ $MA+A-X+PU,"Take Tour","SpawnUser(\"Cd(\\\"::/SparrowOS/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$ $MA+A-X+PU,"Key Map","KeyMap;View;\n"$ -$LK,"Features","FI:::/SparrowOS/Doc/Features.TXT.Z"$ $LK,"Requirements","FI:::/SparrowOS/Doc/Requirements.TXT.Z"$ -$LK,"SparrowOS Constitution","FI:::/SparrowOS/Doc/Constitution.TXT.Z"$ $LK,"Strategic Decisions","FI:::/SparrowOS/Doc/Strategy.TXT.Z"$ -$LK,"Mysteries Explained","FI:::/SparrowOS/Doc/Mysteries.TXT.Z"$ $LK,"Clearing Confusions","FI:::/SparrowOS/Doc/Confuse.TXT.Z"$ -$LK,"Differences from C/C++","FI:::/SparrowOS/Doc/Differences.TXT.Z"$ $LK,"Compiler Directives","FI:::/SparrowOS/Doc/Directives.TXT.Z"$ -$LK,"ChangeLog","FI:::/SparrowOS/Doc/ChangeLog.TXT.Z"$ - -$WW,1$$TR,"Level 1: USER HELP"$ -$ID,2$ -$TR,"Keyboard Ctrls"$ -$ID,2$ -$FG,9$Enter$FG$ Right-click menu -$FG,9$Space Bar$FG$ Edit (view) -$FG,9$Esc$FG$ Save and exit -$FG,9$Shift-Esc$FG$ Abort -$FG,9$Ctrl-m$FG$ Personal Menu -$FG,9$Windows Key$FG$ Pull-down Menu - -Other keys: $MA+A-X+PU,"Key Map","KeyMap;View;\n"$ - -$ID,-2$$TR,"Mouse Ctrls"$ -$ID,2$ -$FG,9$Right-Click$FG$ Right-click menu -$FG,9$Left-Click$FG$ Edit (view) -$FG,9$Double-Left$FG$ Save and exit -$FG,9$Double-Right$FG$ Abort -$FG,9$Top of Screen$FG$ Pull-down menu - -$ID,-2$$LK,"Glossary","FI:::/SparrowOS/Doc/Glossary.TXT.Z"$ -$LK,"TSZ Window's Utility","FI:::/SparrowOS/Doc/TSZ.TXT.Z"$ -$LK,"Tips on Using SparrowOS","FI:::/SparrowOS/Doc/Tips.TXT.Z"$ -$LK,"SparrowOS Quirks","FI:::/SparrowOS/Doc/Quirks.TXT.Z"$ - -$SP,"",1$ This button on the wall paper - starts a terminal window. - - -$TR,"DIRECTORY STRUCTURE"$ -$ID,2$ -$FG,2$/SparrowOS/Accts$FG$ Each subdirectory is an acct. When you boot, you can select an acct to login to, unless you compile OSMain soas to pick one. Your acct directory is your $FG,2$HOME$FG$ directory and all your user data should be placed in here to ease backing-up your data. When you Install an application it will create a subdirectory of your $FG,2$HOME$FG$ directory for storage. - -$FG,2$/SparrowOS/Apps$FG$ Applications are placed in subdirectories of $FG,2$/SparrowOS/Apps$FG$. Applications should have a file called $FG,2$Install.CPP.Z$FG$ which will install the app for the current user acct. The file, $FG,2$Load.CPP.Z$FG$ will load the application into mem. The file, $FG,2$Run.CPP.Z$FG$, will usually load and execute the app. To add an app to your personal menu, use $FG,2$$FG$, insert a macro with the PopUp option checked and invoke the $FG,2$Run.CPP.Z$FG$ file. - -$FG,2$/SparrowOS/Demo$FG$ Here you can find lots of sample code to do various things. - -$FG,2$/SparrowOS/Doc$FG$ Here you can find documentation. - -$FG,2$/SparrowOS/OSMain$FG$ The core of the operating system is found here. Since priviledge levels are not used, calling it a "kernel" would be confusing, but that's what it is. It is statically compiled by $LK,"InstallBoot","MN:InstallBoot"$(). It is loaded by the boot loader and must fit in 640K. - -$FG,2$/SparrowOS/Compiler$FG$ The compiler module src code is found here. The compiler is statically compiled to produce a binary file which is loaded at boot. It is also statically compiled by $LK,"InstallBoot","MN:InstallBoot"$(). - -$FG,2$/SparrowOS/Adam$FG$ The non-kernel part of the operating system is found here. It is JIT compiled during boot. - -$FG,2$/0000Boot$FG$ directory and the $FG,2$0000OSMain.BIN.C$FG$ file are named so that they are first in alphabetical order and, therefore, at a predictable CD/DVD block address. The $LK,"CD/DVD Boot Loader","FI:::/SparrowOS/Adam/Boot/BootCD.CPP.Z"$ will find $FG,2$0000OSMain.BIN.C$FG$ at $LK,"Block #0x16","MN:CDBootFileCreate"$. The SparrowOS boot loader can be used with $FG,4$$TX+HTML,"http://www.magiciso.com","http://www.magiciso.com"$$FG$ if you place $FG,2$0000OSMain.BIN.C$FG$ in the right spot. $FG,2$OldMBR.BIN.C$FG$ and $FG,2$BootMHD2.BIN.C$FG$ will be found in $FG,2$/0000Boot$FG$ if you run $LK,"InstallMasterBoot","MN:InstallMasterBoot"$() to install a hard-drive master boot loader. - -$ID,-2$$TR,"DOLLAR SIGN CMDS"$ -$ID,2$ -$LK,"Dollar Sign Cmds","FI:::/SparrowOS/Doc/Dollar.TXT.Z"$ are rich-text cmds. The editor, compiler, assembler and operating system are seamlessly equiped to handle SparrowOS rich text. Cmds like $LK,"Dir","MN:Dir"$() and $LK,"Grep","MN:Grep"$() can output links to the cmd line. - -$ID,-2$$TR,"CMD PROMPT"$ -$ID,2$ -The SparrowOS cmd line interface is based on C/C++. Explore the ".CPP.Z" files. A cmd which takes no args may be executed by typing the name and a semicolon. Cmds with args require placing the arg in parentheses like a function call. - -$MA,"Dir(\"*\");"$ will list files in the current directory. - -$MA,"Dir;"$ uses default of "*". - -$MA,"Cd(\"::/SparrowOS/Apps\");"$ will change directories. - -Directories are referenced with "/" not "\". The Boot drive is referred to with "$FG,2$::$FG$". Other drives are referred to by a letter and a colon. Your user acct directory is referred to with "$FG,2$HOME$FG$". - -If a file is not found in one directory, all it's parents are searched. - -$FG,9$Ed("FILENAME.TXT.Z");$FG$ Invokes the editor. See $LK,"DOC LINK TYPES","MN:LK_FILE"$. - - -Some cmds like $LK,"Grep","MN:Grep"$() take a "find_files_mask". They begin with the name of a dir tree and end with a list of filename masks. See $LK,"FilesFindMatch","MN:FilesFindMatch"$(). - -$FG,9$Grep("pattern","/SparrowOS/Demo/*.CPP.Z;*.TXT.Z;");$FG$ - -Be aware of $LK,"TEXT_FILE_MASK","MN:TEXT_FILE_MASK"$ and $LK,"SRC_FILE_MASK","MN:SRC_FILE_MASK"$. - -$ID,-2$$TR,"BURNING CD-ROMs/DVDs"$ -$ID,2$ -0) Prepare a directory with the files you wish to burn. -1) Use $LK+S,"CDFileCreate","MN:CDFileCreate"$() to make an ISO image file. -2) Use $LK+S,"CDImageWrite","MN:CDImageWrite"$() to burn an ISO file onto a CD or DVD. - -$LK,"Bootable CD-ROMs","FF:::/SparrowOS/Doc/FileMgr.TXT.Z,Bootable"$ - -$ID,-2$ -$ID,-2$$TR,"Level 2: ADMIN HELP"$ -$ID,2$ -Use $LK,"Mount","MN:Mount"$() to mount disk drives. - -$LK,"Installing","FI:::/SparrowOS/Doc/Install.TXT.Z"$ -$LK,"Acct Files","FF:::/SparrowOS/Doc/GuideLines.TXT.Z,ACCT FILES"$ - -$LK-A+S,"::/SparrowOS/OSMain/Adam1.CPP.Z"$ the SparrowOS equivalent of the $FG,2$AUTOEXEC.BAT$FG$. - -$ID,-2$$TR,"Level 3: PROGRAMMER HELP"$ -$ID,2$ -$LK,"Guidelines","FI:::/SparrowOS/Doc/GuideLines.TXT.Z"$ -$LK,"Differences from C/C++","FI:::/SparrowOS/Doc/Differences.TXT.Z"$ -$LK,"Graphics","FI:::/SparrowOS/Doc/Graphics.TXT.Z"$ -$LK,"Multitasking","FI:::/SparrowOS/Doc/MultiTasking.TXT.Z"$ -$LK,"Doc Documents","FI:::/SparrowOS/Demo/Doc/FileRead.CPP.Z"$ -$LK,"Lectures/AndNotMod.CPP.Z","FI:::/SparrowOS/Demo/Lectures/AndNotMod.CPP.Z"$ -$LK,"Lectures/FixedPoint.CPP.Z","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$ -$LK,"Lectures/Uncached.CPP.Z","FI:::/SparrowOS/Demo/Lectures/Uncached.CPP.Z"$ -$LK,"Lectures/Optimization.CPP.Z","FI:::/SparrowOS/Demo/Lectures/Optimization.CPP.Z"$ -$LK,"Lectures/ScreenMemory.CPP.Z","FI:::/SparrowOS/Demo/Lectures/ScreenMemory.CPP.Z"$ -$LK,"Lectures/GraphicsCPULoad.CPP.Z","FI:::/SparrowOS/Demo/Lectures/GraphicsCPULoad.CPP.Z"$ -$LK,"Lectures/InterruptDemo.CPP.Z","FI:::/SparrowOS/Demo/Lectures/InterruptDemo.CPP.Z"$ -$LK,"Lectures/Spinning.CPP.Z","FI:::/SparrowOS/Demo/Lectures/Spinning.CPP.Z"$ - -$ID,-2$$TR,"Level 4: SYSTEM PROGRAMMER HELP"$ -$ID,2$ -$LK,"System Programming Guide-Lines","FI:::/SparrowOS/Doc/SysPgmGuide.TXT.Z"$ -$LK,"Hash Tables","FL:::/SparrowOS/OSMain/Hash1a.CPP.Z,1"$ -$LK,"Keyboard Handling","FA:::/SparrowOS/Doc/KeyBoard.TXT.Z,PutKeyHandling"$ -$LK,"Page Table Entries 1","FI:::/SparrowOS/Demo/Lectures/PageTableEntries1.CPP.Z"$ -$LK,"Page Table Entries 2","FI:::/SparrowOS/Demo/Lectures/PageTableEntries2.CPP.Z"$ -$LK,"PCIInterrupts.CPP.Z","FI:::/SparrowOS/Demo/Lectures/PCIInterrupts.CPP.Z"$ -$LK,"MemRep","MN:MemRep"$ -$LK,"WallPaper.CPP.Z","FI:::/SparrowOS/Adam/WallPaper.CPP.Z"$ -$LK,"Adding a New File System","FI:::/SparrowOS/Doc/NewFileSystem.TXT.Z"$ -$LK,"Scheduler.CPP.Z","FL:::/SparrowOS/OSMain/Scheduler.CPP.Z,1"$ -$LK,"Doc","FA:::/SparrowOS/Adam/Doc/Doc.CPP.Z,Doc"$ -$LK,"MiniGrLib","FI:::/SparrowOS/Demo/Lectures/MiniGrLib.CPP.Z"$ -$LK,"MiniCompiler","FI:::/SparrowOS/Demo/Lectures/MiniCompiler.CPP.Z"$ -$LK,"Backend","FL:::/SparrowOS/Compiler/BackEnd.CPP.Z,1"$ - -$ID,-2$ -$WW,0$$LK,"AutoFile","HI:AutoFile"$ -$LK,"Bit","HI:Bit"$ -$LK,"Boot","HI:Boot"$ -$LK,"Call","HI:Call"$ -$LK,"Char","HI:Char"$ -$LK,"Circular Queue","HI:Circular Queue"$ -$LK,"Cmd Line (Typically)","HI:Cmd Line (Typically)"$ -$LK,"Compiler","HI:Compiler"$ -$LK,"Compression","HI:Compression"$ -$LK,"Ctrls","HI:Ctrls"$ -$LK,"Debugging","HI:Debugging"$ -$LK,"Device","HI:Device"$ -$LK,"Exceptions","HI:Exceptions"$ -$LK,"Fifo","HI:Fifo"$ -$LK,"File","HI:File"$ -$LK,"Graphics Overview","FI:::/SparrowOS/Doc/Graphics.TXT.Z"$ -$LK,"Graphic Routines","HI:Graphics"$ -$LK,"Hash","HI:Hash"$ -$LK,"Help System","HI:Help System"$ -$LK,"Info","HI:Info"$ -$LK,"Input Pointer","HI:Input Pointer"$ -$LK,"Install","HI:Install"$ -$LK,"I/O","HI:I/O"$ -$LK,"Doc","HI:Doc"$ -$LK,"TSZ","FI:::/SparrowOS/Doc/TSZ.TXT.Z"$ -$LK,"Math","HI:Math"$ -$LK,"Memory","HI:Memory"$ -$LK,"Menus","HI:Menus"$ -$LK,"Messages","HI:Messages"$ -$LK,"Misc","HI:Misc"$ -$LK,"MultiCore","HI:MultiCore"$ -$LK,"Named Frames","HI:Hash/Named Frame"$ -$LK,"CMathODE","HI:CMathODE"$ -$LK,"OpCodes","FI:::/SparrowOS/Compiler/OpCodes.TXT.Z"$ -$LK,"Operator Precedences","FF:::/SparrowOS/Doc/Differences.TXT.Z,operator precedence"$ -$LK,"PrintF Extended Codes","FA:::/SparrowOS/Doc/Differences.TXT.Z,PrintF_Codes"$ -$LK,"Processor","HI:Processor"$ -$LK,"Profiler","HI:Profiler"$ -$LK,"PCI","HI:PCI"$ -$LK,"Sound","HI:Snd"$ -$LK,"Task","HI:Task"$ -$LK,"Time","HI:Time"$ -$LK,"Training","HI:Training"$ -$LK,"Windows","HI:Windows"$ -$LK,"WordStat","HI:WordStat"$ -$LK,"Utils","HI:Utils"$ -7üÿÿÿ-  ) Term \ No newline at end of file diff --git a/SparrowOS/Doc/Lex.TXT b/SparrowOS/Doc/Lex.TXT deleted file mode 100644 index fa522fd..0000000 --- a/SparrowOS/Doc/Lex.TXT +++ /dev/null @@ -1,4 +0,0 @@ -$WW,1$The compiler's lexical analyzer can be used in your programs to simplify parsing. See $LK,"Doc Parsing","FF:::/SparrowOS/Adam/Doc/DocPlain.CPP.Z,LexNew"$ or $LK,"Parse Opcode File","FF:::/SparrowOS/Compiler/CmpInit.CPP.Z,Opcodes.TXT.Z"$. - -See $LK,"Tokens","MN:TK_IDENT"$. - diff --git a/SparrowOS/Doc/MultiCore.TXT b/SparrowOS/Doc/MultiCore.TXT deleted file mode 100644 index edb9979..0000000 --- a/SparrowOS/Doc/MultiCore.TXT +++ /dev/null @@ -1,14 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"SparrowOS MutliCore"$$FG$ - -SparrowOS does master-slave multicore instead of SMP. Core#0 is the master. The master core assigns computational jobs to other cores. It is symmetrical in the sense that you can do file access and heap allocations because there are locks. Call $LK,"TaskInitExt","MN:TaskInitExt"$ to enable file access. See $LK,"::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/LoadTest.CPP.Z"$. SparrowOS does not move tasks between cores. - -Only tasks on core#0 can have windows, but other cores can help render them. - -Each core has a "seth task" which is the father of all tasks on that core. Adam is the seth task on core 0. - -You give a job to a seth task with $LK,"MPJob","MN:MPJob"$() and get the result with $LK,"MPJobResult","MN:MPJobResult"$(). You spawn a task on another core with $LK,"MPSpawn","MN:MPSpawn"$(). - -Note: you must use the $FG,2$LOCK$FG$ asm prefix when changing shared structures in a multicore environment. The $LK,"LBts","MN:LBts"$(), $LK,"LBtr","MN:LBtr"$() and $LK,"LBtc","MN:LBtc"$() instructions have $FG,2$LOCK$FG$ prefixes. The compiler has a $FG,2$lock{}$FG$ feature but it doesn't work well. See $LK,"::/SparrowOS/Demo/MultiCore/Lock.CPP.Z","FI:::/SparrowOS/Demo/MultiCore/Lock.CPP.Z"$. - -See $LK,"::/SparrowOS/Demo/Graphics/Transform.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Transform.CPP.Z"$. -See $LK,"::/SparrowOS/OSMain/MultiProc.CPP.Z","FI:::/SparrowOS/OSMain/MultiProc.CPP.Z"$. diff --git a/SparrowOS/Doc/MultiTasking.TXT b/SparrowOS/Doc/MultiTasking.TXT deleted file mode 100644 index e59baa6..0000000 --- a/SparrowOS/Doc/MultiTasking.TXT +++ /dev/null @@ -1,22 +0,0 @@ -$FG,5$$TX+CX,"MultiTasking"$$FG$ - -$WW,1$SparrowOS is a preemptive multitasking operating system. However, you can turn-off preemption on a task by task basis and the task will not yield ctrl unless it volunteers with $LK,"Yield","MN:Yield"$(), $LK,"Sleep","MN:Sleep"$() or a call to I/O which yields ctrl. Use the $LK,"Preempt","MN:Preempt"$() cmd to turn on or off preemption. This is useful when you have multiple tasks modifying data structures simultaneously. Interrupts still occur when preemption is off. - -$BK,1$Preemption is turned-off by default when a task is $LK,"Spawn","MN:Spawn"$()ed.$BK,0$ - -The time-slice rate is set by $LK,"JIFFY_FREQ","MN:JIFFY_FREQ"$. - -SparrowOS does not remove tasks from "the queue" when they are waiting. They swap-in, check for whatever condition they are waiting for and swap-out. This keeps it simple, but would cause problems if too many tasks existed. SparrowOS is intended for non-server home computers with a maximum of around ten, or so, tasks. See $LK,"Scheduler","FL:::/SparrowOS/OSMain/Scheduler.CPP.Z,1"$. - -SparrowOS has no task priority scheme. - -Disk requests are not broken into pieces for sharing. Therefore, if one task makes a big request, the drive is locked onto that task until it is done. During that time, other tasks can do CPU-only operations, however. - - -$FG,5$$TX+CX,"Interrupts"$$FG$ - -You can turn-on and off interrupts, in your user programs. This is part of the mission statement, giving complete freedom to programmers Use $LK,"Cli","MN:Cli"$() or $LK,"Sti","MN:Sti"$(). SparrowOS currently doesn't use interrupt besides the timer and keyboard interrupt. Since the interrupt flag is part of your task context and since you are voluntarily swapped-out if you call $LK,"GetChar","MN:GetChar"$() or whatever, you won't even notice if you turn-off interrupts at the cmd prompt because you are being swapped-out and interrupts are being turned-on by the next task. - -I saw no reason to make the hard drive or CD-ROM drive code interrupt driven -- it just creates potential compatibility issues. On a home system, you do one thing at a time, mostly. SparrowOS can do multiple things at once, but not as efficiently as a server operating system. It would bogg down with a hundred tasks asking for service. It sure is simpler, though... smaller... simpler to maintain... and understandable by a layman! The disk code does not break-up requests, if you are curious why one task must wait until another finishes an operation. - -See $LK,"::/SparrowOS/Demo/Lectures/Spinning.CPP.Z","FI:::/SparrowOS/Demo/Lectures/Spinning.CPP.Z"$. \ No newline at end of file diff --git a/SparrowOS/Doc/Mysteries.TXT b/SparrowOS/Doc/Mysteries.TXT deleted file mode 100644 index 3c5e15c..0000000 --- a/SparrowOS/Doc/Mysteries.TXT +++ /dev/null @@ -1,67 +0,0 @@ -$WW,1$$FG,5$This is to clearify how several mysterious things happen in SparrowOS.$FG$ - - -* SparrowOS runs in $FG,2$VGA 640x480 16 color$FG$ graphics mode, not text mode. It changes to this mode with a $LK,"BIOS call","FF:::/SparrowOS/OSMain/OSStart.CPP.Z,INT 0x10"$ while in real-mode before it switches to 64-bit mode. The text is $LK,"drawn manually","MN:GrUpdateForegroundOfText"$. If graphics mode fails, it falls-back on text mode. You can force text mode with an $LK,"OSMain config","FI:::/SparrowOS/OSMain/OSCfg.CPP.Z"$ option. - -* SparrowOS identity-maps all memory, all the time. There is no "high half" memory space. SparrowOS is ring-0-only, so everything is kernel, even user programs. There is a special task called "Adam" and he doesn't die, so his heap never gets freed. That's as close to "kernel memory" as it gets. - -* SparrowOS puts all code in the lowest 2 Gig, so that REL32 addressing can be used. SparrowOS is 64-bit, but I just thought 2 Gig was enough for code. It actually puts global variables there, too, but you can turn that off with $LK,"OPTf_GLBLS_ON_DATA_HEAP","MN:OPTf_GLBLS_ON_DATA_HEAP"$. $LK,"MAlloc","MN:MAlloc"$() can allocate any memory, of course. - -* SparrowOS doesn't use software interrupts or SYSCALL instructions because it never needs to change out of ring-0, even running user programs. Calls are always CALL REL32 instructions. - -* The stack does not grow. In theory, memory gets fragmented, too. - -* There is no $FG,2$PATH$FG$. You do not enter filenames at the command-line and expect them to run. You enter C-like code. $LK,"Get Started Here","FI:::/SparrowOS/Doc/CmdLine.TXT.Z"$. - -* If you use $LK,"Grub","FI:::/SparrowOS/Doc/Grub.TXT.Z"$, you "chain-load" like Windows. You can use the SparrowOS boot-loader. $LK,"Master-Boot-Loader-Stage1","FI:::/SparrowOS/Adam/Boot/BootMHD.CPP.Z"$, $LK,"Master-Boot-Loader-Stage2","FI:::/SparrowOS/Adam/Boot/BootMHD2.CPP.Z"$, $LK,"Partition-Boot-Loader","FI:::/SparrowOS/Adam/Boot/BootHD.CPP.Z"$, $LK,"CD-DVD-Boot-Loader","FI:::/SparrowOS/Adam/Boot/BootCD.CPP.Z"$. - -* The boot-loaders must be patched by you running $LK,"InstallBoot","MN:InstallBoot"$() or $LK,"InstallMasterBoot","MN:InstallMasterBoot"$(). Those will write the block address into the boot-loader because the boot-loaders do not navigate file systems to find the $LK,"Stage2","FI:::/SparrowOS/OSMain/OSStart.CPP.Z"$ if you relocate it. - -* The $FG,2$/0000Boot$FG$ directory and the $FG,2$0000OSMain.BIN.C$FG$ file are named so that they are first in alphabetical order and, therefore, at a predictable block address. The $LK,"CD/DVD Boot Loader","FI:::/SparrowOS/Adam/Boot/BootCD.CPP.Z"$ will find $FG,2$0000OSMain.BIN.C$FG$ at $LK,"Block #0x16","MN:CDBootFileCreate"$. The SparrowOS boot loader can be used with $FG,4$$TX+HTML,"http://www.magiciso.com","http://www.magiciso.com"$$FG$ if you place $FG,2$0000OSMain.BIN.C$FG$ in the right spot. - -* SparrowOS is 64-bit. Like all PC operating systems, the boot-loader starts in 16-bit real-mode. SparrowOS calls a few BIOS info routines, switches to VGA-640x480x4bit, switches to 32-bit, then, 64-bit mode. There is an odd thing called a $FG,2$$TX+HTML,"PCI BIOS","http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf"$$FG$ which is 32-bit used for PCI config space access. SparrowOS calls $LK,"that","FI:::/SparrowOS/OSMain/BIOS32.CPP.Z"$ a couple times. It must temporarily drop-out-of 64-bit mode for that and stop multi-tasking. - -* PUSH EAX : All stack operations in 64-bit mode are 64-bits. - -* XOR EAX,EAX : Operations on 32-bit registers clear the high 32-bits. - -* MOV RAX,FS:[RAX] : FS can be set with a WRMSR, but displacement is RIP relative, so it's tricky to use. FS is used for the current $LK,"CTask","MN:CTask"$, GS for $LK,"CCPU","MN:CCPU"$. - -* SparrowOS uses JIT file compression on a file-by-file basis. Files are $LK,"compressed","FI:::/SparrowOS/OSMain/Compress.CPP.Z"$, not encrypted. - -* SparrowOS has a dictionary that is shipped compressed. When you boot the first time it is uncompressed. SparrowOS has a Windows utility for uncompressing. That utility needs Microsoft DLL files. SparrowOS does not use any libraries, modules or code from other sources -- I wrote it all from scratch and it is self-contained. - -* There are no OBJ or EXE files. There are only two files compiled ahead-of-time -- $FG,2$OSMain.BIN.C$FG$ and $FG,2$Compiler.BIN.Z$FG$. You can delete them and recompile with $LK,"InstallBoot","MN:InstallBoot"$(). SparrowOS is $TX+D,"135,799","DD_SPARROWOS_LOC"$ lines. Roughly 50,000 is compiled AOT and 50,000 during boot JIT. The rest is JIT demos and applications. - -* The main difference between SparrowOS and other systems is that the heap and compiler sym table are associated with tasks, not applications. - -* There are sym(hash) tables maintained by each task. They are similar in scope to environment variables. When a symbol is not found, the parent task's symbol table is checked. All process chain back to the $FG,2$Adam$FG$ process. $FG,2$Adam$FG$ has the symbols from headers you normally $FG,2$#include$FG$ in other operating systems, so you do not need to $FG,2$#include$FG$ any headers in SparrowOS. - -* The compiler only creates pos independent code. You can't create code which is loaded at a fixed, specified location. The code is pos independent by virtue of the fact that abs addresses get patched. - -* Binary executable files have export syms which are loaded into the sym tables. The operating system $FG,2$OSMain$FG$ has such an export table. In addition, some map files are processed to provide more information on syms -- src file links. This is how the $LK,"Man","MN:Man"$()/$FG,2$WORDSTAT$FG$ feature can find src lines. - -* The word "$FG,2$public$FG$" does very little except allow the $LK,"help_index","FI:::/SparrowOS/Doc/HelpIndex.TXT.Z"$ and $LK,"HashRep","MN:HashRep"$() program varients to exclude meaningless syms. If you wish a full report of public and nonpublic syms $MA+A-X+PU,"Click Here","DocMax(1000000);HAllRep;View;\n"$. - -* When compilation takes place, the structures used by the compiler stick around. Data on classes can be accessed by code. See $LK,"ClassRep","MN:ClassRep"$(). - -* Filenames ending in "$FG,2$.Z$FG$" are automatically compressed and uncompressed when writing to disk. File size in directory listing is the compressed size. You can view uncompressed size with $LK,"Dir","MN:Dir"$("*",TRUE); if you use the native SparrowOS filesystem. See $LK,"::/SparrowOS/Doc/TSZ.TXT.Z","FI:::/SparrowOS/Doc/TSZ.TXT.Z"$ for uncompressing from $FG,2$WINDOWS$FG$. - -* Some memory objects are allocated when needed and will decrease the available memory displayed. A task keeps mem objects smaller than a couple blocks in it's own separate heap when freed and these are not counted in the available system free memory, though they are free. They get returned to the system when the task is killed. To get a sense of this, compile the operating system and see the amount of mem used. Then, compile it again and far less will be allocated. This is because it is reusing the small chunks. See $LK,"Memory","HI:Memory"$. $MA+A-X+PU,"Click Here","MemRep;View;"$ for a $LK,"MemRep","MN:MemRep"$. - -* The cursor location is stored as an $FG,2$ASCII 5$FG$ in files. $FG,2$ASCII 31$FG$ is $FG,2$SHIFT-SPACE$FG$, a character which does not get converted to tabs by space-to-tabs, $LK,"S2T","MN:S2T"$(). The $FG,2$ASCII 28$FG$ is $FG,2$SHIFT-ESC$FG$. - -* Binary data is stored beyond the terminating $FG,2$NULL$FG$ in text files. Map files store debug src lines and other files store sprites. - -* Sprites can be stored as vect graphics so they might take shockingly little room. They can be converted to bitmaps. - -* If you change code in the $FG,2$/SparrowOS/Adam$FG$, $FG,2$/SparrowOS/Adam$FG$ or your $FG,2$HOME$FG$ directory, you don't need to recompile, you just need to reboot because those directories get recompiled when you boot. It uses JIT compilation. There is no "$FG,2$.BIN$FG$" file for JIT compilation. - -* If a file is not found, the parent directories are searched for a file of the same name. - -* SparrowOS supports $FG,2$FAT32$FG$ and a native SparrowOS file system type. The native SparrowOS partitions will appear as $FG,2$FAT32$FG$ to other operating systems, but will not work. Do not access the native SparrowOS partitions from other operating systems. This was to fool a bootloader when I tricked it to use it's recovery partition feature. - -* The CPU usage during disk operation expands to 99%. It polls while swapping-out. You can do other, non-disk activity during disk operations because it swaps-out a lot and task swaps take only half a microsecond, probably a hundred times faster than a typical OS. See $LK,"Cooperative Multitasking","FI:::/SparrowOS/Demo/Lectures/Spinning.CPP.Z"$. It does not break-up disk operations into small pieces for sharing, however, so the disk is lock onto that one task. - -$FG,8$ -* "Windows" is a trademark of MicroSoft Corp. diff --git a/SparrowOS/Doc/NamedFrame.TXT b/SparrowOS/Doc/NamedFrame.TXT deleted file mode 100644 index a5be6f3..0000000 --- a/SparrowOS/Doc/NamedFrame.TXT +++ /dev/null @@ -1,2 +0,0 @@ -$WW,1$If you require separate global vars for multiple instances of a routine, you can use $FG,4$NamedFrame$FG$s. See $LK,"CSpriteMesh","MN:CSpriteMesh"$(), $LK,"::/SparrowOS/Demo/Graphics/Pick3D.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Pick3D.CPP.Z"$ or $LK,"Noise","MN:Noise"$(). - diff --git a/SparrowOS/Doc/ODE.TXT b/SparrowOS/Doc/ODE.TXT deleted file mode 100644 index e47aa5c..0000000 --- a/SparrowOS/Doc/ODE.TXT +++ /dev/null @@ -1,7 +0,0 @@ -$WW,1$SparrowOS has an advanced algorithm for integrating ordinary differential equations suitable for use in video games. (Not scientific work.) It also has some support for systems of masses and springs, to save you some work. - -See $LK,"CMathODE","MN:CMathODE"$ and $LK,"ODEsUpdate","MN:ODEsUpdate"$ for an overview. -See $LK,"ODECallDerivative","MN:ODECallDerivative"$ to see what support there is for masses and springs. - -See $LK,"::/SparrowOS/Demo/GameStarters/Whap.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Whap.CPP.Z"$, $LK,"::/SparrowOS/Demo/GameStarters/Rocket.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Rocket.CPP.Z"$, $LK,"::/SparrowOS/Demo/GameStarters/MassSpring.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/MassSpring.CPP.Z"$, $LK,"::/SparrowOS/Apps/Span/SpanMain.CPP.Z","FI:::/SparrowOS/Apps/Span/SpanMain.CPP.Z"$ or $LK,"::/SparrowOS/Apps/X-Caliber/X-Caliber.CPP.Z","FI:::/SparrowOS/Apps/X-Caliber/X-Caliber.CPP.Z"$ for a masses and springs examples, or $LK,"::/SparrowOS/Demo/WinMgr2.CPP.Z","FI:::/SparrowOS/Demo/WinMgr2.CPP.Z"$, or $LK,"::/SparrowOS/Demo/GameStarters/Rocks.CPP.Z","FI:::/SparrowOS/Demo/GameStarters/Rocks.CPP.Z"$. - diff --git a/SparrowOS/Doc/Snd.TXT b/SparrowOS/Doc/Snd.TXT deleted file mode 100644 index c2110b5..0000000 --- a/SparrowOS/Doc/Snd.TXT +++ /dev/null @@ -1,6 +0,0 @@ -$WW,1$Uncomment $LK,"#include \"HDAudio\"","FF:HOME/Adam3cSnd.CPP.Z,#include \"HDAudio\""$ in your $FG,2$/HOME/Adam3cSnd.CPP.Z$FG$ file to install a driver for HD Audio. Cfgure it with $LK,"::/SparrowOS/Adam/Snd/HDCfg.CPP.Z","FI:::/SparrowOS/Adam/Snd/HDCfg.CPP.Z"$ and add the file created, $FG,4$HOME/HDAudioCfg.CPP.Z$FG$, to your start-up scripts. $BK,1$Comment it out everything if you get no snd -- the PC Speaker should still work.$BK,0$ - -If you don't have HDAudio, you'll have to live with the PC Speaker. You might write a driver for your snd card following the HDAudio template. - -See $LK,"::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z","FI:::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z"$, $LK,"SndFileFillBuf","MN:SndFileFillBuf"$() and $LK,"HDFillBuf","MN:HDFillBuf"$() for using HD Audio. The buffers are managed by $LK,"HDAudioTask","MN:HDAudioTask"$(). - diff --git a/SparrowOS/Doc/Splash.TXT b/SparrowOS/Doc/Splash.TXT deleted file mode 100644 index 9275342..0000000 --- a/SparrowOS/Doc/Splash.TXT +++ /dev/null @@ -1,31 +0,0 @@ - - SparrowOS V1.02 - - - - - - - - - - - $SP+BP,"",1,"::/SparrowOS/Demo/Graphics/Logo.CPP.Z,1"$ - - - - - - - - - - - - - - Public Domain - Operating System - - $LK,"Trivial Solutions","FI:::/SparrowOS/Doc/TrivialSolutions.TXT.Z"$ - diff --git a/SparrowOS/Doc/TSZ.TXT b/SparrowOS/Doc/TSZ.TXT deleted file mode 100644 index 977765d..0000000 --- a/SparrowOS/Doc/TSZ.TXT +++ /dev/null @@ -1,38 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Linux TSZ Utility"$$FG$ - - -$FG,2$TSZ [-ascii] filename$FG$ - -Will uncompress a single file from Linux. The $FG,2$-ascii$FG$ flag will convert the irregular SparrowOS ASCII 5 and ASCII 31 characters to spaces. (ASCII 5 is used to mark the cursor pos and ASCII 31 is used for shifted space characters and will cause problems unless you convert them.) - - -$FG,5$$TX+CX,"Windows TSZ Utility"$$FG$ - -$FG,2$TSZ$FG$ is a Windows cmd line program which will assist transferring files from SparrowOS to Windows. It will also uncompress SparrowOS files you have gotten to Windows. There are three ways to get files from SparrowOS to Windows -- via CD-ROM, a $FG,2$FAT32$FG$ partition or via a "file partition" you have created with $FG,2$TSZ$FG$ on a Windows partition. - - -$FG,2$TSZ -expand [-ascii] dirname$FG$: - -will uncompress all SparrowOS files with names ending in "$FG,2$.Z$FG$" in a Windows directory and in all subdirectories. The $FG,2$-ascii$FG$ flag used in combination will convert the irregular SparrowOS ASCII 5 and ASCII 31 characters to spaces. (ASCII 5 is used to mark the cursor pos and ASCII 31 is used for shifted space characters and will cause problems unless you convert them.) Note: If you pick names not ending in "$FG,2$.Z$FG$", they will not need to be uncompressed. You can $LK,"Move","MN:Move"$() or $LK,"Copy","MN:Copy"$() them to a name not ending in "$FG,2$.Z$FG$" and they will be stored uncompressed. - - -$FG,2$TSZ -make megcnt partitionfilename signnum$FG$: - -will create a file on a Windows partition and fill it with a signature num that can be searched for block-by-block from SparrowOS. Once some blocks have been allocated by Windows and located by SparrowOS, and if you don't mess with them, you can use them to transfer files between SparrowOS and Windows. This is a little risky. It's pretty safe if you create this file on a partition dedicated for this purpose. - - -$LK,"NonNativeScan","MN:NonNativeScan"$(): - -is a SparrowOS cmd which will scan for some blocks created by $FG,2$TSZ$FG$ and provide a block num you can use to specify a "Non-LT file partition". You can recompile OSMain and define this partition or use $LK,"Mount","MN:Mount"$() each time. You will be asked to provide a drive letter and from then on, you just copy files to that partition, boot Windows and run $FG,2$TSZ$FG$ to extract them. - - -$FG,2$TSZ -extract dstdirname partitionfilename$FG$: - -will copy all files in a file partition to a Windows directory, making them available from Windows. - -$BK,1$WARNING:$BK,0$ Do not run a defrag operation on a partition holding a file partition. If you store files to it after such an operation, you'll ruin data on your hard drive. - - -$FG,8$ -* "Windows" is a trademark of MicroSoft Corp. -* "Linux" is probably a trademark owned by Linus Torvalds. diff --git a/SparrowOS/Doc/TimeCycles.TXT b/SparrowOS/Doc/TimeCycles.TXT deleted file mode 100644 index 7fd75c2..0000000 --- a/SparrowOS/Doc/TimeCycles.TXT +++ /dev/null @@ -1,3 +0,0 @@ -$WW,1$Intel has an instruction that returns the num of CPU cycles since boot. This is not calibrated to an accurate real time value, but SparrowOS measures it and you can convert with $LK,"time_stamp_freq","MN:time_stamp_freq"$, a value continuously calibrated from other timers. This is the fastest timer available. - - diff --git a/SparrowOS/Doc/TimeDate.TXT b/SparrowOS/Doc/TimeDate.TXT deleted file mode 100644 index b752109..0000000 --- a/SparrowOS/Doc/TimeDate.TXT +++ /dev/null @@ -1,5 +0,0 @@ -$WW,1$SparrowOS uses a 64-bit value, $LK,"CDate","MN:CDate"$, for date/time. The upper 32-bits are the days since Christ. The lower 32-bits store time of day divided by 4 billion which works out to 49710ths of a second. You can subtract two $LK,"CDate","MN:CDate"$'s to get a time span. - -Use $LK,"CDATE_FREQ","MN:CDATE_FREQ"$ to convert. - - diff --git a/SparrowOS/Doc/TrivialSolutions.TXT b/SparrowOS/Doc/TrivialSolutions.TXT deleted file mode 100644 index 2f0e87e..0000000 --- a/SparrowOS/Doc/TrivialSolutions.TXT +++ /dev/null @@ -1,20 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Trivial Solutions"$$FG$ - - -The $FG,2$$TX+HTML,"trivial solution","http://en.wikipedia.org/wiki/Trivial_solution"$$FG$ in math is the simple, obvious answer. The fable that NASA spent millions on a space pen while Russia used a pencil is another example. SparrowOS uses many $LK,"trivial solutions","FI:::/SparrowOS/Doc/Strategy.TXT.Z"$. - -See $LK,"::/SparrowOS/Doc/Acknowledgements.TXT.Z","FI:::/SparrowOS/Doc/Acknowledgements.TXT.Z"$. - -$FG,2$Website:$FG$ -$TX+HTML,"www.sparrowos.com","http://www.sparrowos.com"$ - -$FG,2$Owner/President:$FG$ -Terry A. Davis -$TX+HTML,"ASU Transcripts","http://www.sparrowos.com/files/ASU_Transcripts.pdf"$ -8144 Sickle Lane -Las Vegas, NV 89128 -(702)254-4223 -$TX+HTML,"tdavis@sparrowos.com","mailto:tdavis@sparrowos.com"$ - -$FG,2$About Me:$FG$ -I was a National Merit Scholar with a 1440 SAT at Arizona State University. Here are my $TX+HTML,"ASU Transcripts","http://www.sparrowos.com/files/ASU_Transcripts.pdf"$. 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. I worked for a company named Xytec Corp. 1997-1999. We made FPGA-based image processing equipment. I wrote $FG,2$$TX+HTML,"SimStructure","http://www.sparrowos.com/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. diff --git a/SparrowOS/Doc/Upgrade.TXT b/SparrowOS/Doc/Upgrade.TXT deleted file mode 100644 index 0aebcc5..0000000 --- a/SparrowOS/Doc/Upgrade.TXT +++ /dev/null @@ -1,8 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Upgrading SparrowOS"$$FG$ - -To upgrade, you generally boot the new SparrowOS CD/DVD, install on top of your partition, modify your files and set it to boot your account by executing $LK,"InstallBoot","MN:InstallBoot"$(). Often, your code will have to be modified to work with the new version. See $LK,"ChangeLog","FI:::/SparrowOS/Doc/ChangeLog.TXT.Z"$. You might have to boot an alternate partition or the CD and modify your code until it boots okay. - -The $FG,2$INSTALL$FG$ option when you boot a CD will install on top of an existing install if you tell it not to delete the $FG,2$/SparrowOS$FG$ directory. - -See the $LK,"Installing","FI:::/SparrowOS/Doc/Install.TXT.Z"$ documentation. - diff --git a/SparrowOS/Doc/Welcome.TXT b/SparrowOS/Doc/Welcome.TXT deleted file mode 100644 index 1de23b4..0000000 --- a/SparrowOS/Doc/Welcome.TXT +++ /dev/null @@ -1,67 +0,0 @@ -$WW,1$$FG,5$$TX+CX,"Welcome to SparrowOS"$$FG$ - -$LK,"Trivial Solutions","FI:::/SparrowOS/Doc/TrivialSolutions.TXT.Z"$'s SparrowOS is a x86_64, multi-cored, multi-tasking, ring-0-only, single-address_mapped (identity), operating system for recreational programming: -$ID,2$* Professional hobby projects -* Teenager projects -* Non-professional, older-person projects -$ID,-2$ -Simplicity is a goal to $LK,"keep the line count down","FI:::/SparrowOS/Doc/Strategy.TXT.Z"$, 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+D,"134,203","DD_SPARROWOS_LOC"$ lines of code including the kernel, the 64-bit compiler, the graphics library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a "hello world" application in one line of code and can put graphics on the screen 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 SparrowOS has value. In facts, that's the point of SparrowOS. See the $LK,"SparrowOS Constitition","FI:::/SparrowOS/Doc/Constitution.TXT.Z"$. - -Two things to know about SparrowOS are that $UL,1$tasks$UL,0$ have $LK,"MAlloc","MN:MAlloc"$/$LK,"Free","MN:Free"$ heap memory, not applications, and tasks have compiler symbol tables that persist at a scope like environment variables in other operating systems, and the symbols can include functions. - -In other operating systems, I hated learning one language for command line scripts and another for programming. With $FG,2$SparrowOS$FG$, the command line feeds right into the $FG,2$C+$FG$ (more than $FG,2$C$FG$, less than $FG,2$C++$FG$) compiler, line by line, and it places code into memory it $LK,"MAlloc","MN:MAlloc"$()s. The compiler is paused at the command line, waiting for input. Naturally, you $FG,2$#include$FG$ a program to load it into memory and, usually, start it. During the boot process, many files get compiled before you have access to the command line. (Don't worry, booting takes only a couple seconds.) All the header declarations for the operating system are compiled and are available for use in your programs without needing to $FG,2$#include $FG$them. Everything is truly compiled to native $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$ and nothing is "interpreted". - -Statements at the global scope (outside the scope of $FG,2$C+$FG$ functions) execute immediately. There is no $FG,2$main()$FG$ function. Instead, you give meaningful names to what would be $FG,2$main()$FG$ functions and you invoke them by calling them with a statement in the global scope, usually at the bottom of your file. - -I started with $FG,2$C$FG$ syntax, but didn't like the command line for a directory listing looking like this: - - >$FG,4$Dir("*.*",FALSE); - -$FG$So, I added default args from $FG,2$C++$FG$ and it looked like this: - - >$FG,4$Dir(); - -$FG$I didn't like that, so I made parentheses optional on calls with no args and it, now, looks like this: - - >$FG,4$Dir;$FG$ - -The syntax change created an ambiguity when specifying function addresses. To resolve it, I made a '$FG,2$&$FG$' required in front of function names when specifying an address of a function, which is better anyway. - -Once I was no longer using standard syntax, I decided to change everything I didn't like. Here are the new $LK,"operator precedence","FA:::/SparrowOS/Doc/Differences.TXT.Z,OP_precedence"$ rules. See $LK,"Departures from C/C++","FI:::/SparrowOS/Doc/Differences.TXT.Z"$. It's Biblical! See $LK,"Luke,5:37","BF:Luke,5:37"$. - -There are no object files in SparrowOS and, normally, you don't make executable files either, but you can. That's known as "$FG,2$static$FG$" compilation. Instead, you "$FG,2$just-in-time$FG$" compile. - -Tasks have no priority scheme and are never removed from the queue. Instead, they often poll whatever they are waiting on and swap-out. (Swapping tasks takes half a microsecond and does not involve disk activity or memory maps.) See $LK,"Scheduler","FL:::/SparrowOS/OSMain/Scheduler.CPP.Z,1"$. Polling keeps it simple. It's might be a problem if you had lots of tasks busy, which rarely happens on a home computer. The order of the tasks in the queue determines front-to-back window order. See $LK,"SparrowOS MultiTasking","FI:::/SparrowOS/Doc/MultiTasking.TXT.Z"$. - -The SparrowOS native file system is simple, so I don't get sued. There is an allocation bitmap for clusters and all files are stored contiguously. You can't grow files. It's geared toward reading and writing whole files. Since whole files are processed, checksums and compression are possible. Filenames ending in $FG,2$'Z'$FG$ are automatically compressed or uncompressed when stored or fetched. SparrowOS supports direct block random access into files, however -- $LK,"FRBlks","MN:FRBlks"$() and $LK,"FWBlks","MN:FWBlks"$(). There is no $FG,2$PATH$FG$, but parent directories are searched when a file is not found. This feature is used for default account files. Note: the $FG,2$FAT32$FG$ filesystem is supported, which makes exchanging files with a dual booted other operating system easy. If you don't have a $FG,2$FAT32$FG$ partition, you can use the $LK,"TSZ","FI:::/SparrowOS/Doc/TSZ.TXT.Z"$ program to transfer files to your primary operating system's partition. - -It's fun being able to turn-off interrupts with $LK,"Cli","MN:Cli"$() $FG$and on with $LK,"Sti","MN:Sti"$(). $FG,2$SparrowOS$FG$ runs all programs in kernel mode, ring 0, so no instructions are off-limits. Turning-off and on preemption with $LK,"Preempt","MN:Preempt"$() is a less drastic measure that is usually sufficient. A newly $LK,"Spawn","MN:Spawn"$()ed task begins with preemption off. - -The graphic resolution is poor, $FG,2$640x480 16 color$FG$, but 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. - -SparrowOS is for hobbyist programmers on single user (at a time) home computers, not mainframes or servers, but it is preemptive multitasking. 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 SparrowOS 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,"SparrowOS MultiCore","FI:::/SparrowOS/Doc/MultiCore.TXT.Z"$. - -There is no distinction between the terms "task", "process" or "thread". All have a task record, $LK,"CTask","MN:CTask"$(), pointed to by the $FG,2$FS$FG$ segment register and are accessed with $FG,4$Fs->$FG$ while $FG,4$Gs->$FG$ points to a $LK,"CCPU","MN:CCPU"$ for the current CPU core. Each task can have just one window, but a task can have children with windows. (The segment registers are just used as extra registers -- there is nothing segmented about SparrowOS' memory.) - -In SparrowOS, "$FG,2$Adam$FG$" refers to a task that is the father of all tasks. He's never supposed to die. Since tasks inherit the symbols of parents, system-wide stuff is associated with $FG,2$Adam$FG$. His heap is like kernel memory in other operating systems. Since $FG,2$Adam$FG$ is immortal, it's safe to allocate objects, not tied to any mortal task, from $FG,2$Adam$FG$'s heap. He stays in a server mode, taking requests, so you can ask him to $FG,2$#include$FG$ something, placing that code system-wide. A funny story is that originally I called it the "root" task and even had a "$FG,2$/SparrowOS/Root$FG$" directory ;-) $FG,2$Adam$FG$ executes $LK,"::/SparrowOS/OSMain/Adam1.CPP.Z","FI:::/SparrowOS/OSMain/Adam1.CPP.Z"$ at boot time. - -For easy back-ups, place everything you author in your $FG,2$HOME$FG$ directory and subdirectories. Then, use $LK,"CopyTree","MN:CopyTree"$(). That should make upgrading easy, too. To make an account use $LK,"MkDir","MN:MkDir"$() to create a directory under $FG,2$/SparrowOS/Accts$FG$. It will be $FG,2$HOME$FG$ if you boot to it. Recompile with $LK,"InstallBoot","MN:InstallBoot"$() and make it boot your acct. Customizable start-up scripts go in your $FG,2$HOME$FG$ directory. The default start-up scripts are in $FG,2$/SparrowOS/Accts$FG$, the parent of all accounts. Copy the start-up files you wish to customize into $FG,2$HOME$FG$ and modify them. See $LK,"Acct Files","FF:::/SparrowOS/Doc/GuideLines.TXT.Z,ACCT FILES"$. - -Typically, your usage pattern through the day will be repeatedly left or right clicking on filenames in a cmd line $LK,"Dir","MN:Dir"$() listing. You left-click files to edit them and right-click to $FG,2$#include$FG$ them. To begin a project, type $LK,"Ed","MN:Ed"$(""); and supply a filename. You can also run programs with $FG,2$$FG$ when in the editor. $FG,2$$FG$ to save and exit the file. You'll need to do a new $LK,"Dir","MN:Dir"$() cmd, periodically, so make a macro on your personal menu. Access your personal menu by pressing $FG,2$$FG$, cursoring until you are on top of it and pressing $FG,2$$FG$. - -$FG,2$$FG$ toggles plain text mode, showing format commands, a little like viewing html code. $FG,2$$FG$ inserts a nongraphic widget. $FG,2$$FG$ inserts a graphic resource or edits the graphic under the cursor. - -$FG,2$$FG$ brings-up the file manager. It's pretty crappy. I find I don't need it very often, believe it or not. - -$FG,2$$FG$ creates a new terminal window. $FG,2$$FG$ kills a window. You'll do these periodically. - -$LK,"Grep","MN:Grep"$() is your best friend. There's a wrapper function called $LK,"F","MN:F"$() in your $FG,2$HOME/Adam3eWrappers.CPP.Z$FG$ file. Feel free to make wrapper functions for functions you use often and customize the args. By the way, $LK,"Grep","MN:Grep"$() or $LK,"R","MN:R"$() can be used to replace strings across multiple files. You can access $LK,"Grep","MN:Grep"$() using $FG,2$$FG$. - -As you browse code, use the $FG,2$WordStat$FG$ window to look-up functions, etc. $FG,2$$FG$ (or whatever number) to follow a sym to it's source. You can browse deeper and deeper. You go back with $FG,2$$FG$. - -Use the $LK,"Help Index","FI:::/SparrowOS/Doc/HelpIndex.TXT.Z"$ or $LK,"Demo Index","FI:::/SparrowOS/Doc/DemoIndex.TXT.Z"$ to find-out what exists. Press $FG,2$F1$FG$ for help or use the links on your menu ($FG,2$$FG$). Also, look in the $FG,2$/SparrowOS/Demo$FG$ or $FG,2$/SparrowOS/Apps$FG$ directories for inspiration. - - -$MA+A-X+PU,"Take Tour","SpawnUser(\"Cd(\\\"::/SparrowOS/Misc/Tour\\\");;AutoFile(\\\"Tour\\\");\n\");"$ diff --git a/SparrowOS/OSMain/Adam1.CPP b/SparrowOS/OSMain/Adam1.CPP deleted file mode 100644 index 82dfb83..0000000 --- a/SparrowOS/OSMain/Adam1.CPP +++ /dev/null @@ -1,12 +0,0 @@ -//This is executed by Adam at boot. -//See $LK,"Adam1 Start-up","FF:::/SparrowOS/OSMain/OSEnd.CPP.Z,Adam1:2"$ -extern I8i OptEqu(I64i num,I8i val); -OptEqu(0,0); //(0,0)=EchoOff (0,1)=EchoOn -#include "/SparrowOS/OSMain/BootDefs.HPP.Z" -#include "/SparrowOS/OSMain/Adam1a.HPP.Z" -#include "/SparrowOS/Compiler/CmpDefs.HPP.Z" -#include "/SparrowOS/OSMain/Adam1b.HPP.Z" -#include "/SparrowOS/OSMain/Adam1c.HPP.Z" -#include "/SparrowOS/Compiler/Compiler.HPP.Z" -Cd("/SparrowOS/Adam");; -#include "Adam2.CPP.Z" diff --git a/SparrowOS/OSMain/Date.CPP b/SparrowOS/OSMain/Date.CPP deleted file mode 100644 index 7cc3f3e..0000000 --- a/SparrowOS/OSMain/Date.CPP +++ /dev/null @@ -1,197 +0,0 @@ -//See $LK,"::/SparrowOS/Doc/TimeDate.TXT.Z","FI:::/SparrowOS/Doc/TimeDate.TXT.Z"$ - -U16 mon_start_days1[12]={ -0,31,59,90,120,151,181,212,243,273,304,334}; -U16 mon_start_days2[12]={ -0,31,60,91,121,152,182,213,244,274,305,335}; - -I64 YearStartDate(I64 year) -{ - I64 y1=year-1,yd4000=y1/4000,yd400=y1/400,yd100=y1/100,yd4=y1/4; - return year*365+yd4-yd100+yd400-yd4000; -} - -CDate CDateStruct2CDate(CDateStruct *_ds) -{ - CDate ltdt; - I64 i1,i2; - i1=YearStartDate(_ds->year); - i2=YearStartDate(_ds->year+1); - if (i2-i1==365) - i1+=mon_start_days1[_ds->mon-1]; - else - i1+=mon_start_days2[_ds->mon-1]; - ltdt.date=i1+_ds->day_of_mon-1; - ltdt.time=(_ds->sec10000+100*(_ds->sec100+100*(_ds->sec+60*(_ds->min+60*_ds->hour))))<<21/(15*15*3*625); - return ltdt; -} - -I64 DayOfWeek(I64 i) -{ - i+=CDATE_BASE_DAY_OF_WEEK; - if (i>=0) - return i % 7; - else - return 6-(6-i)%7; -} - -U0 CDate2CDateStruct(CDateStruct *_ds,CDate ltdt) -{ - I64 i,k,date=ltdt.date; - _ds->day_of_week=DayOfWeek(date); - _ds->year=(date+1)*100000/CDATE_YEAR_DAYS_INT; - i=YearStartDate(_ds->year); - while (i>date) { - _ds->year--; - i=YearStartDate(_ds->year); - } - date-=i; - if (YearStartDate(_ds->year+1)-i==365) { - k=0; - while (date>=mon_start_days1[k+1] && k<11) - k++; - date-=mon_start_days1[k]; - } else { - k=0; - while (date>=mon_start_days2[k+1] && k<11) - k++; - date-=mon_start_days2[k]; - } - _ds->mon=k+1; - _ds->day_of_mon=date+1; - k=(625*15*15*3*ltdt.time)>>21+1; - _ds->sec10000=ModU64(&k,100); - _ds->sec100=ModU64(&k,100); - _ds->sec=ModU64(&k,60); - _ds->min=ModU64(&k,60); - _ds->hour =k; -} - -I64 FirstDayOfMon(I64 i) -{ - CDateStruct ds; - CDate ltdt=0; - ltdt.date=i; - CDate2CDateStruct(&ds,ltdt); - ds.day_of_mon=1; - ltdt=CDateStruct2CDate(&ds); - return ltdt.date; -} - -I64 LastDayOfMon(I64 i) -{ - CDateStruct ds; - CDate ltdt=0; - ltdt.date=i; - CDate2CDateStruct(&ds,ltdt); - ds.mon++; - if (ds.mon==13) { - ds.mon=0; - ds.year++; - } - ds.day_of_mon=1; - ltdt=CDateStruct2CDate(&ds); - return ltdt.date-1; -} - -I64 FirstDayOfYear(I64 i) -{ - CDateStruct ds; - CDate ltdt=0; - ltdt.date=i; - CDate2CDateStruct(&ds,ltdt); - ds.day_of_mon=1; - ds.mon=1; - ltdt=CDateStruct2CDate(&ds); - return ltdt.date; -} - -I64 LastDayOfYear(I64 i) -{ - CDateStruct ds; - CDate ltdt=0; - ltdt.date=i; - CDate2CDateStruct(&ds,ltdt); - ds.day_of_mon=1; - ds.mon=1; - ds.year++; - ltdt=CDateStruct2CDate(&ds); - return ltdt.date-1; -} - - -I64 Bcd2Bin(I64 b) -{ - I64 i,result=0; - for (i=0;i<16;i++) { - result=result*10+b>>60; - b<<=4; - } - return result; -} - - -U0 GetCurTimeCDateStruct(CDateStruct *_ds) -{ - I64 i; - U8 *b=_ds; - Bool is_bcd; - - MemSet(_ds,0,sizeof(CDateStruct)); - PushFD; - Cli; - while (LBts(&sys_semas[SYS_SEMA_SYS_DATE],0)) - Pause; - - OutU8(0x70,0x0A); - do { - while (InU8(0x71) & 0x80) - Pause; - - OutU8(0x70,0); - b[2]=InU8(0x71); - OutU8(0x70,2); - b[3]=InU8(0x71); - OutU8(0x70,4); - b[4]=InU8(0x71); - - OutU8(0x70,6); - b[5]=InU8(0x71); - OutU8(0x70,7); - b[6]=InU8(0x71); - OutU8(0x70,8); - b[7]=InU8(0x71); - OutU8(0x70,9); - b[8]=InU8(0x71); - - OutU8(0x70,0x0A); - } while (InU8(0x71) & 0x80); - - OutU8(0x70,0x0B); - if (InU8(0x71) & 4) - is_bcd=FALSE; - else - is_bcd=TRUE; - - LBtr(&sys_semas[SYS_SEMA_SYS_DATE],0); - PopFD; - if (is_bcd) - for (i=2;i<9;i++) - b[i]=Bcd2Bin(b[i]); - - if (_ds->year>255) _ds->year=255; - _ds->year+=2000; - if (_ds->mon>12) _ds->mon=12; - if (_ds->day_of_mon>31) _ds->day_of_mon=31; - if (_ds->day_of_week>6) _ds->day_of_week=6; - if (_ds->hour>23) _ds->hour=23; - if (_ds->min>59) _ds->min=59; - if (_ds->sec>59) _ds->sec=59; -} - -CDate GetCurTimeCDate() -{ - CDateStruct ds; - GetCurTimeCDateStruct(&ds); - return CDateStruct2CDate(&ds)-local_time_offset; -} diff --git a/SparrowOS/OSMain/Dsk/DskAddDev.CPP b/SparrowOS/OSMain/Dsk/DskAddDev.CPP deleted file mode 100644 index c878f4e..0000000 --- a/SparrowOS/OSMain/Dsk/DskAddDev.CPP +++ /dev/null @@ -1,361 +0,0 @@ -U0 SetBlkDevLockFwding(CBlkDev *bdev) -{ - CBlkDev *bd1; - I64 i; - switch (bdev->type) { - case BDT_RAM: - break; - case BDT_ATA: - case BDT_ATAPI: - for (i=0;itype==BDT_ATAPI || bd1->type==BDT_ATA) && - bd1->base0==bdev->base0) { - bdev->lock_fwding=bd1; - break; - } - } - break; - case BDT_NON_NATIVE_FILE: - bdev->lock_fwding=Drv2BlkDev(bdev->non_native_drv); - break; - } -} - -I64 BlkDevAdd(CBlkDev *bdev,Bool one_prt) -{ - I64 i,j,ext_base,num_prt,offset; - CPrt *p; - CBootStruct br; - CMasterBoot mbr; - - bdev->bd_signature=BD_SIGNATURE_VAL; - num_prt=bdev->drv_let_base-'A'; - p=&sys_prts[num_prt]; - MemSet(p,0,sizeof(CPrt)); - p->drv_let=num_prt+'A'; - p->pt_signature=PRT_SIGNATURE_VAL; - p->bdev=bdev; - p->size=bdev->max_blk+1; - switch (bdev->type) { - case BDT_RAM: - p->type=PT_NATIVE; - p->rblks=&RAMRBlks; - p->wblks=&RAMWBlks; - num_prt++; - -//This is to force creation of a RAM -//drive during boot, so it is probably -//MAlloced to the same addr and can -//be assumed to be already formatted. -//If this line is removed, RAM Drives -//will be allocated on a just-in-time -//basis. - BlkDevInit(bdev); - - break; - case BDT_ATA: - BlkDevInit(bdev); - if (one_prt) { - p->type=PT_NATIVE; - p->rblks=&ATARBlks; - p->wblks=&ATAWBlks; - p->size=bdev->max_blk+1; - num_prt++; - //The following read is a test read. - //if it hangs, the drive is not supported. - ATAReadBlks(bdev,&mbr,0,1); - break; - } - offset=0; - ext_base=INVALID_CLUSTER; - while (TRUE) { - ATAReadBlks(bdev,&mbr,offset,1); - if (mbr.signature!=0xAA55) - break; - j=-1; - for (i=0;i<4;i++) { - if (mbr.p[i].type) { - p=&sys_prts[num_prt]; - MemSet(p,0,sizeof(CPrt)); - p->drv_let=num_prt+'A'; - p->pt_signature=PRT_SIGNATURE_VAL; - p->bdev=bdev; - p->rblks=&ATARBlks; - p->wblks=&ATAWBlks; - p->offset=mbr.p[i].offset+offset; - p->size =mbr.p[i].size; - p->type=PT_NULL; - switch (mbr.p[i].type) { - case MBR_PT_NATIVE: - p->type=PT_NATIVE; - NativeFSPrtInit(p); - num_prt++; - break; - case MBR_PT_FAT32a: - case MBR_PT_FAT32b: - case MBR_PT_FAT32c: - case MBR_PT_FAT32d: - case MBR_PT_FAT32e: - case MBR_PT_FAT32f: - ATAReadBlks(bdev,&br,p->offset,1); - if (br.signature==MBR_PT_NATIVE) { - p->type=PT_NATIVE; - NativeFSPrtInit(p); - } else { - p->type=PT_FAT32; - FAT32PrtInit(p); - } - num_prt++; - break; - case MBR_PT_NTFS: - p->type=PT_NTFS; - num_prt++; - break; - case 5: - case 15: - j=i; - break; - default: - p->type=PT_UNKNOWN; - num_prt++; - } - } - } - if (j<0) - break; - if (!mbr.p[j].offset) - break; - if (ext_base==INVALID_CLUSTER) { - offset=mbr.p[j].offset; - ext_base=offset; - } else - offset=mbr.p[j].offset+ext_base; - } - break; - case BDT_ATAPI: - p->type=PT_ISO9660; //Start with this - p->rblks=&ATARBlks; - p->wblks=&ATAWBlks; - p->size =0; - num_prt++; - break; - case BDT_NON_NATIVE_FILE: - p->type=PT_NATIVE; - p->offset=bdev->non_native_offset; - p->rblks=&NonNativeFileRBlks; - p->wblks=&NonNativeFileWBlks; - if (bdev->flags & BDF_FMT) - p->size=bdev->max_blk-bdev->min_blk+1; - num_prt++; - break; - } - SetBlkDevLockFwding(bdev); - return num_prt-(bdev->drv_let_base-'A'); -} - - -Bool DrvEnable(U8 drv_let,Bool val) -{//This can be used to unmount a drive or remount, -//but not mount the first time. - CPrt *p; - Bool result=FALSE; - try { - p=Drv2Prt(drv_let); - result=!LBEqu(&p->type,PTf_DISABLE,!val); - } catch { - Fs->ignore_except=TRUE; - } - return result; -} - -CATARep *ATARepFind(CATARep *root,I64 num) -{ - CATARep *tempha=root; - while (tempha) { - if (tempha->num==num) - return tempha; - tempha=tempha->next; - } - return tempha; -} - -U0 Mount(Bool repartition=FALSE) -{ - CBlkDev *bdev; - I64 drv_let_base,drv_let,type,k,num_hints; - U8 buf[32],buf2[128],buf3[128]; - Bool add; - CATARep *root,*tempha; - - do { - PrtRep; - PutDefine("ST_MOUNT_BASE_LET"); - drv_let_base=ToUpper(GetChar)-'A'; - NewLine; - if (0<=drv_let_basebase0); - SPrintF(buf3,"0x%X",tempha->base1); - k=tempha->unit; - } else { - if (type==BDT_ATAPI) - StrCpy(buf3,"0"); - else - do { - PutDefine("ST_MOUNT_BASE1"); - GetS(buf3,128); - } while (!A2I(buf3)); - do { - PutDefine("ST_MOUNT_UNIT"); - k=GetChar-'0'; - } while (!(0<=k<=1)); - NewLine; - } - LinkedListDel(root); - } - if (type==BDT_NON_NATIVE_FILE) { - PutDefine("ST_MOUNT_NON_NATIVE_LET"); - drv_let=GetChar; - NewLine; - PutDefine("ST_INCLUDE_0X"); - PutDefine("ST_MOUNT_NON_NATIVE_BLK"); - GetS(buf2,128); - } - if (type==BDT_RAM) { - PutDefine("ST_MOUNT_BLKS"); - GetS(buf,32); - } - - if (BDT_NULLdrv_let_base=drv_let_base+'A'; - bdev->unit=k; - bdev->type=type; - - if (type==BDT_ATAPI) - bdev->flags=BDF_REMOVABLE; - else - bdev->flags=0; - if (type!=BDT_RAM) - bdev->flags|=BDF_READ_CACHE; - - if (type==BDT_ATAPI) { - bdev->blk_size=CD_BLK_SIZE; - bdev->flags|=BDF_READ_ONLY; - } else - bdev->blk_size=BLK_SIZE; - - if (type==BDT_RAM) - bdev->max_blk=A2I(buf)-1; - else - bdev->max_blk=0xEFFFFFFF; - - if (type==BDT_NON_NATIVE_FILE) { - bdev->non_native_drv=drv_let; - bdev->non_native_offset=A2I(buf2); - } else { - bdev->non_native_drv=0; - bdev->non_native_offset=0; - } - - if (type==BDT_ATA || - type==BDT_ATAPI) { - bdev->base0=A2I(buf2); - bdev->base1=A2I(buf3); - } - - add=TRUE; - if (type==BDT_ATA && repartition) { - PutDefine("ST_MOUNT_FMT_WHOLE_DRV"); - if (YorN) { - if (!BlkDevAdd(bdev,TRUE)) - PutDefine("ST_FAILED"); - else - CallExtStr("PrtDsk",bdev->drv_let_base); - add=FALSE; - } - } - if (add && !BlkDevAdd(bdev,FALSE)) - PutDefine("ST_FAILED"); - } else - PutDefine("ST_FAILED"); - } - } while (0<=drv_let_baseopts[CFG_DONT_PROBE]) - StreamPutS("probe=FALSE;"); - else - StreamPutS("probe=TRUE;"); -}; - if (!probe || !BootCdProbeAll(bdev)) { - "\nThis is not a product registration. SparrowOS\n" - "needs the I/O port numbers for the CD-ROM.\n" - "Retry the ports above or check Windows\n" - "system information under I/O ports for\n" - "'IDE', 'ATA' or 'SATA'.\n\n" - "\nEnter 4-digit hex I/O Port number.\n" - "CD-ROM I/O Port Base0: 0x"; - bdev->base0=SysPmtI64; - bdev->base1=0; - - "\nUnit (0 or 1): "; - do ch=GetChar(NULL,FALSE); - while (!('0'<=ch<='1')); - '' ch; - bdev->unit=ch-'0'; - return TRUE; - } - return FALSE; -} - -U0 BlkDevsInitAll() -{ - CBlkDev *bdev; - I64 i; - num_blkdevs=0; - sys_blkdevs=ACAlloc(sizeof(CBlkDev)*NUM_BLKDEVS); - sys_prts=ACAlloc(sizeof(CPrt)*NUM_PRTS); - for (i=0;iadd_dev); - StreamPutS("#exe {OptOn(OPTf_WARN_PAREN);}"); -}; - PrtRep; -} - diff --git a/SparrowOS/OSMain/OSMain.MAP b/SparrowOS/OSMain/OSMain.MAP deleted file mode 100644 index 6430e87..0000000 --- a/SparrowOS/OSMain/OSMain.MAP +++ /dev/null @@ -1,3443 +0,0 @@ -$LK+BI,"A2CDate ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,2336",1$$LK+BI,"","A2CDate",2$000000FD52 0001 00000002C2 Funct -$LK+BI,"A2F64 ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,2401",3$$LK+BI,"","A2F64",4$000001001A 0001 0000000237 Funct -$LK+BI,"A2I ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1004",5$$LK+BI,"","A2I",6$000000ABA4 0013 000000018C Funct -$LK+BI,"A2KeyName ","FL:::/SparrowOS/OSMain/KbdMouse/Keyboard.CPP.Z,196",7$$LK+BI,"","A2KeyName",8$0000016147 0001 00000002A9 Funct -$LK+BI,"A2ScanCode ","FL:::/SparrowOS/OSMain/KbdMouse/Keyboard.CPP.Z,97",9$$LK+BI,"","A2ScanCode",10$0000015D7F 0000 000000013F Funct -$LK+BI,"ACAlloc ","FL:::/SparrowOS/OSMain/Memory.CPP.Z,970",11$$LK+BI,"","ACAlloc",12$0000005F2F 0009 000000001B Funct -$LK,"ADAM_HASH_SIZE ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,2588"$(1<<18) 0001 0000000008 DefineStr -$LK,"ADAM_STK ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,2582"$(PAGE_SIZE 0002 0000000018 DefineStr -$LK+BI,"AKDInputFilterPutKey ","FL:::/SparrowOS/OSMain/Display.CPP.Z,154",13$$LK+BI,"","AKDInputFilterPutKey",14$000001209A 0001 000000006A Funct -$LK+BI,"AKDInputFilterPutS ","FL:::/SparrowOS/OSMain/Display.CPP.Z,166",15$$LK+BI,"","AKDInputFilterPutS",16$000001210A 0001 0000000077 Funct -$LK+BI,"AKDRawDisplayPutKey ","FL:::/SparrowOS/OSMain/Display.CPP.Z,134",17$$LK+BI,"","AKDRawDisplayPutKey",18$0000012032 0001 0000000026 Funct -$LK+BI,"AKDRawDisplayPutS ","FL:::/SparrowOS/OSMain/Display.CPP.Z,143",19$$LK+BI,"","AKDRawDisplayPutS",20$000001205A 0001 0000000039 Funct -$LK,"AKW_ALIGN ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,293"$64 0000 0000000008 DefineStr -$LK,"AKW_DU16 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,306"$77 0000 0000000008 DefineStr -$LK,"AKW_DU32 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,307"$78 0000 0000000008 DefineStr -$LK,"AKW_DU64 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,308"$79 0000 0000000008 DefineStr -$LK,"AKW_DU8 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,305"$76 0000 0000000008 DefineStr -$LK,"AKW_DUP ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,309"$80 0000 0000000008 DefineStr -$LK,"AKW_F64 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,304"$75 0000 0000000008 DefineStr -$LK,"AKW_I0 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,294"$65 0000 0000000008 DefineStr -$LK,"AKW_I16 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,296"$67 0000 0000000008 DefineStr -$LK,"AKW_I32 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,297"$68 0000 0000000008 DefineStr -$LK,"AKW_I64 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,298"$69 0000 0000000008 DefineStr -$LK,"AKW_I8 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,295"$66 0000 0000000008 DefineStr -$LK,"AKW_IMPORT ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,313"$84 0000 0000000008 DefineStr -$LK,"AKW_LIST ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,314"$85 0000 0000000008 DefineStr -$LK,"AKW_NOLIST ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,315"$86 0000 0000000008 DefineStr -$LK,"AKW_U0 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,299"$70 0000 0000000008 DefineStr -$LK,"AKW_U16 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,301"$72 0000 0000000008 DefineStr -$LK,"AKW_U32 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,302"$73 0000 0000000008 DefineStr -$LK,"AKW_U64 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,303"$74 0000 0000000008 DefineStr -$LK,"AKW_U8 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,300"$71 0000 0000000008 DefineStr -$LK,"AKW_USE16 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,310"$81 0000 0000000008 DefineStr -$LK,"AKW_USE32 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,311"$82 0000 0000000008 DefineStr -$LK,"AKW_USE64 ","FL:::/SparrowOS/Compiler/CmpDefs.HPP.Z,312"$83 0000 0000000008 DefineStr -$LK,"ALL_MASK ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,143"$-1 0001 0000000008 DefineStr -$LK+BI,"AMAlloc ","FL:::/SparrowOS/OSMain/Memory.CPP.Z,958",21$$LK+BI,"","AMAlloc",22$0000005ED7 000F 000000001B Funct -$LK+BI,"AMAllocIdentical ","FL:::/SparrowOS/OSMain/Memory.CPP.Z,986",23$$LK+BI,"","AMAllocIdentical",24$0000005FA7 0004 000000001B Funct -$LK,"ARC_MAX_BITS ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3339"$12 0004 0000000008 DefineStr -$LK,"ARC_MAX_ENTRY ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3340"$(1<answe 0000 0000000018 DefineStr -$LK,"ans0 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3028"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ans1 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3029"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ans2 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3030"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ans3 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3031"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ansf ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3033"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ansf0 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3034"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ansf1 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3035"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ansf2 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3036"$(Fs->answe 0000 0000000018 DefineStr -$LK,"ansf3 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,3037"$(Fs->answe 0000 0000000018 DefineStr -$LK,"bios_gr_mode ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,28"$0000000C60 0003 0000000002 GlbVar -$LK,"boot_drv_pmt ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,34"$0000003951 0002 0000000001 GlbVar -$LK,"c32_eax ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,155"$000002BC36 0008 0000000004 GlbVar -$LK,"c32_ebx ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,156"$000002BC3A 0009 0000000004 GlbVar -$LK,"c32_ecx ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,157"$000002BC3E 0007 0000000004 GlbVar -$LK,"c32_edi ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,160"$000002BC4A 0006 0000000004 GlbVar -$LK,"c32_edx ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,158"$000002BC42 0000 0000000004 GlbVar -$LK,"c32_esi ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,159"$000002BC46 0001 0000000004 GlbVar -$LK,"cpu_structs ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,190"$0000002338 000E 0000000008 GlbVar -$LK,"ctrl_alt_let_descs ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,43"$0000003A90 0003 0000000008 GlbVar -$LK,"ctrl_alt_let_in_irq_flags ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,41"$0000003A80 0004 0000000008 GlbVar -$LK,"ctrl_alt_let_ret_addr ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,41"$0000003A88 0001 0000000008 GlbVar -$LK,"date_fmt_map ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,132"$0000003E58 0003 0000000008 GlbVar -$LK,"dec_numeric_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,357"$0000009734 0003 0000000040 GlbVar -$LK,"dft_drv ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,34"$0000003950 0003 0000000001 GlbVar -$LK,"dft_prt ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,33"$0000003948 0004 0000000008 GlbVar -$LK,"displayable_chars_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,384"$0000009974 0001 0000000040 GlbVar -$LK,"drv_to_prt ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,37"$0000003960 0003 0000000100 GlbVar -$LK,"eps ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,139"$(0x3CB0000 0000 0000000020 DefineStr -$LK,"exp_1 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,132"$(0x4005BF0 0000 0000000020 DefineStr -$LK,"ext ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,294"$0000001828 0006 0000000008 GlbVar -$LK,"fat_long_name_map ","FL:::/SparrowOS/OSMain/Dsk/FileSysFAT.CPP.Z,185"$0000025727 0006 000000000D GlbVar -$LK,"filename_chars_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,354"$00000096F4 0002 0000000040 GlbVar -$LK,"fp_ctrl_alt_let_cbs ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,40"$0000003A78 0006 0000000008 GlbVar -$LK,"fp_doc_cur ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,123"$0000003E28 0002 0000000008 GlbVar -$LK,"fp_mgets ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,120"$0000003E10 0005 0000000008 GlbVar -$LK,"fp_prs_stream_blk ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,121"$0000003E18 0000 0000000008 GlbVar -$LK,"fp_set_std_palette ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,124"$0000003E30 0002 0000000008 GlbVar -$LK,"fp_snd ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,116"$0000003DF0 0003 0000000008 GlbVar -$LK,"fp_snd_copy_buf ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,119"$0000003E08 0000 0000000008 GlbVar -$LK,"fp_snd_fill_buf ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,118"$0000003E00 0000 0000000008 GlbVar -$LK,"fp_snd_record ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,117"$0000003DF8 0002 0000000008 GlbVar -$LK,"fp_update_ctrls ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,122"$0000003E20 0002 0000000008 GlbVar -$LK,"getkey_chars_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,378"$00000098F4 0000 0000000040 GlbVar -$LK,"gr_font ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,24"$00000038F8 0002 0000000008 GlbVar -$LK,"gr_height ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,23"$00000038F0 000F 0000000008 GlbVar -$LK,"gr_width ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,22"$00000038E8 0014 0000000008 GlbVar -$LK,"hex_digits ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1"$000000927C 0001 0000000010 GlbVar -$LK,"hex_numeric_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,360"$0000009774 0001 0000000040 GlbVar -$LK,"inf ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,128"$(0x7FF0000 0000 0000000020 DefineStr -$LK,"ip_cb ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,80"$0000003CB5 0003 0000000001 GlbVar -$LK,"ip_cb_last ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,79"$0000003CB2 0000 0000000001 GlbVar -$LK,"ip_dev ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,77"$0000003C98 0002 0000000008 GlbVar -$LK,"ip_has_wheel ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,82"$0000003CB7 0001 0000000001 GlbVar -$LK,"ip_last_move_time ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,83"$0000003CB8 0001 0000000008 GlbVar -$LK,"ip_lb ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,80"$0000003CB4 0004 0000000001 GlbVar -$LK,"ip_lb_last ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,79"$0000003CB1 0001 0000000001 GlbVar -$LK,"ip_on ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,78"$0000003CB0 0001 0000000001 GlbVar -$LK,"ip_rb ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,81"$0000003CB6 0004 0000000001 GlbVar -$LK,"ip_rb_last ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,80"$0000003CB3 0001 0000000001 GlbVar -$LK,"ip_snap_last ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,84"$0000003CC0 0008 0000000030 GlbVar -$LK,"ip_speed ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,76"$0000003C90 0001 0000000008 GlbVar -$LK,"ip_throttle ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,72"$0000003C40 0003 0000000008 GlbVar -$LK,"iptx ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,77"$0000003CA0 0004 0000000008 GlbVar -$LK,"ipty ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,78"$0000003CA8 0004 0000000008 GlbVar -$LK,"ipx ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,71"$0000003C28 0009 0000000008 GlbVar -$LK,"ipx_offset ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,73"$0000003C60 0006 0000000008 GlbVar -$LK,"ipx_presnap ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,72"$0000003C48 0003 0000000008 GlbVar -$LK,"ipx_scale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,74"$0000003C78 0004 0000000008 GlbVar -$LK,"ipy ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,71"$0000003C30 0009 0000000008 GlbVar -$LK,"ipy_offset ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,73"$0000003C68 0006 0000000008 GlbVar -$LK,"ipy_presnap ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,72"$0000003C50 0003 0000000008 GlbVar -$LK,"ipy_scale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,74"$0000003C80 0004 0000000008 GlbVar -$LK,"ipz ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,71"$0000003C38 0004 0000000008 GlbVar -$LK,"ipz_offset ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,74"$0000003C70 0003 0000000008 GlbVar -$LK,"ipz_presnap ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,73"$0000003C58 0002 0000000008 GlbVar -$LK,"ipz_scale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,75"$0000003C88 0003 0000000008 GlbVar -$LK,"kbd2_fifo ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,104"$0000003D78 0007 0000000008 GlbVar -$LK,"kbd_evt_time ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,49"$0000003AD8 0004 0000000008 GlbVar -$LK,"kbd_fifo ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,103"$0000003D70 0007 0000000008 GlbVar -$LK,"kbd_irqs_working ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,54"$0000003B70 0002 0000000001 GlbVar -$LK,"kbdmouse_rst ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,101"$0000003D62 0006 0000000001 GlbVar -$LK,"key_desc ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,53"$0000003AF0 0001 0000000080 GlbVar -$LK,"key_down_bitmap ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,113"$0000003DB0 0003 0000000020 GlbVar -$LK,"key_down_bitmap2 ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,115"$0000003DD0 0003 0000000020 GlbVar -$LK,"key_handler ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,55"$0000003B78 0001 0000000008 GlbVar -$LK,"local_time_offset ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,43"$0000003A98 003F 0000000008 GlbVar -$LK,"log10_2 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,135"$(0x3FD3441 0000 0000000020 DefineStr -$LK,"log2_10 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,133"$(0x400A934 0000 0000000020 DefineStr -$LK,"log2_e ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,134"$(0x3FF7154 0000 0000000020 DefineStr -$LK,"loge_2 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,136"$(0x3FE62E4 0000 0000000020 DefineStr -$LK,"mon_start_days1 ","FL:::/SparrowOS/OSMain/Date.CPP.Z,3"$0000008BD4 0003 0000000018 GlbVar -$LK,"mon_start_days2 ","FL:::/SparrowOS/OSMain/Date.CPP.Z,5"$0000008BEC 0003 0000000018 GlbVar -$LK,"mouse2_fifo ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,105"$0000003D88 0005 0000000008 GlbVar -$LK,"mouse_buttons ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,94"$0000003D58 000B 0000000005 GlbVar -$LK,"mouse_evt ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,98"$0000003D5F 0004 0000000001 GlbVar -$LK,"mouse_evt_time ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,49"$0000003AD0 0007 0000000008 GlbVar -$LK,"mouse_fifo ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,104"$0000003D80 0005 0000000008 GlbVar -$LK,"mouse_has_ext_buttons ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,97"$0000003D5E 0004 0000000001 GlbVar -$LK,"mouse_has_wheel ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,96"$0000003D5D 0004 0000000001 GlbVar -$LK,"mouse_install_attempt_in_progress","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,100"$0000003D61 0005 0000000001 GlbVar -$LK,"mouse_install_attempts ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,108"$0000003DA0 0003 0000000008 GlbVar -$LK,"mouse_installed ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,99"$0000003D60 0007 0000000001 GlbVar -$LK,"mouse_irqs_working ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,102"$0000003D63 0004 0000000001 GlbVar -$LK,"mouse_last_evt_time ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,109"$0000003DA8 0003 0000000008 GlbVar -$LK,"mouse_pkt_size ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,49"$0000003AE0 0004 0000000008 GlbVar -$LK,"mouse_speed ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,92"$0000003D38 0002 0000000008 GlbVar -$LK,"mp_apic_ids ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,10"$0000003840 0004 0000000040 GlbVar -$LK,"mp_cnt ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,186"$0000002340 0014 0000000008 GlbVar -$LK,"mp_cnt_initial ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,186"$0000002348 0003 0000000008 GlbVar -$LK,"mp_cnt_lock ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,188"$0000002350 0003 0000000008 GlbVar -$LK,"mp_crash ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,8"$0000003838 000A 0000000008 GlbVar -$LK,"mp_ctrl ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,7"$0000003830 0009 0000000008 GlbVar -$LK,"mxx ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,90"$0000003D20 0008 0000000008 GlbVar -$LK,"mxx_prescale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,89"$0000003D08 0005 0000000008 GlbVar -$LK,"mxx_scale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,85"$0000003CF0 0004 0000000008 GlbVar -$LK,"myy ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,90"$0000003D28 0008 0000000008 GlbVar -$LK,"myy_prescale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,89"$0000003D10 0005 0000000008 GlbVar -$LK,"myy_scale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,85"$0000003CF8 0004 0000000008 GlbVar -$LK,"mzz ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,91"$0000003D30 0005 0000000008 GlbVar -$LK,"mzz_prescale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,90"$0000003D18 0005 0000000008 GlbVar -$LK,"mzz_scale ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,86"$0000003D00 0004 0000000008 GlbVar -$LK,"non_eol_chars_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,390"$00000099F4 0000 0000000040 GlbVar -$LK,"non_eol_white_space_bitmap","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,366"$00000097F4 0000 0000000040 GlbVar -$LK,"num_blkdevs ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,36"$0000003958 0005 0000000008 GlbVar -$LK,"num_lock_map ","FL:::/SparrowOS/OSMain/KbdMouse/Keyboard.CPP.Z,176"$0000016047 0001 0000000100 GlbVar -$LK,"old_mxx ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,92"$0000003D40 0005 0000000008 GlbVar -$LK,"old_myy ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,92"$0000003D48 0005 0000000008 GlbVar -$LK,"old_mzz ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,93"$0000003D50 0003 0000000008 GlbVar -$LK,"pi ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,130"$(0x400921F 0000 0000000020 DefineStr -$LK,"pow10_I64 ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,67"$0000003C18 0003 0000000008 GlbVar -$LK,"printable_chars_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,381"$0000009934 0001 0000000040 GlbVar -$LK,"progress1 ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,43"$0000002220 0008 0000000008 GlbVar -$LK,"progress1_desc ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,45"$0000002230 0005 0000000030 GlbVar -$LK,"progress1_max ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,44"$0000002228 0005 0000000008 GlbVar -$LK,"progress2 ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,46"$0000002260 0000 0000000008 GlbVar -$LK,"progress2_desc ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,48"$0000002270 0000 0000000030 GlbVar -$LK,"progress2_max ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,47"$0000002268 0000 0000000008 GlbVar -$LK,"progress3 ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,49"$00000022A0 0000 0000000008 GlbVar -$LK,"progress3_desc ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,51"$00000022B0 0000 0000000030 GlbVar -$LK,"progress3_max ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,50"$00000022A8 0000 0000000008 GlbVar -$LK,"progress4 ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,52"$00000022E0 0000 0000000008 GlbVar -$LK,"progress4_desc ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,54"$00000022F0 0000 0000000030 GlbVar -$LK,"progress4_max ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,53"$00000022E8 0000 0000000008 GlbVar -$LK,"psect_cache ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,130"$0000003E48 0003 0000000008 GlbVar -$LK,"psect_cache_index ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,131"$0000003E50 0002 0000000008 GlbVar -$LK,"reverse_bits_table ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,38"$0000003A68 0003 0000000008 GlbVar -$LK,"safe_dollar_chars_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,387"$00000099B4 0001 0000000040 GlbVar -$LK,"scan_code_fifo ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,103"$0000003D68 0004 0000000008 GlbVar -$LK,"scan_code_map ","FL:::/SparrowOS/OSMain/KbdMouse/Keyboard.CPP.Z,155"$0000015F47 0001 0000000100 GlbVar -$LK,"set_bits_table ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,39"$0000003A70 0003 0000000008 GlbVar -$LK,"snd_dev ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,62"$0000003BF0 0001 0000000008 GlbVar -$LK,"snd_freq ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,61"$0000003BE8 0003 0000000008 GlbVar -$LK,"snd_record ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,63"$0000003BF8 0001 0000000001 GlbVar -$LK,"snd_reverb_delay ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,64"$0000003C10 0000 0000000008 GlbVar -$LK,"snd_reverb_intensity ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,64"$0000003C08 0000 0000000008 GlbVar -$LK,"snd_vol ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,64"$0000003C00 0001 0000000008 GlbVar -$LK,"sprintf_neg_powers_lets ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1589"$000000D880 0001 0000000008 GlbVar -$LK,"sprintf_neg_powers_list ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1587"$000000D848 0000 0000000008 GlbVar -$LK,"sprintf_pos_powers_lets ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1584"$000000D830 0001 0000000008 GlbVar -$LK,"sprintf_pos_powers_list ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,1582"$000000D7F8 0000 0000000008 GlbVar -$LK,"sqrt2 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,137"$(0x3FF6A09 0000 0000000020 DefineStr -$LK,"sys_acct ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,38"$0000003A60 0009 0000000008 GlbVar -$LK,"sys_blkdevs ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,32"$0000003938 0006 0000000008 GlbVar -$LK,"sys_boot_base ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,36"$0000000004 0003 0000000004 GlbVar -$LK,"sys_boot_code ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,37"$0000000018 0002 0000000004 GlbVar -$LK,"sys_boot_patch_table_base ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,39"$0000000008 0001 0000000004 GlbVar -$LK,"sys_cache_line_width ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,163"$00000024C0 0001 0000000008 GlbVar -$LK,"sys_clipboard_doc ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,29"$0000003918 0000 0000000008 GlbVar -$LK,"sys_code_bp ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,120"$0000002210 0009 0000000008 GlbVar -$LK,"sys_compile_time ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,33"$000000000C 0001 0000000008 GlbVar -$LK,"sys_ctrl_alt_flags ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,32"$0000001820 0005 0000000008 GlbVar -$LK,"sys_cur_scan_code ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,50"$0000003AE8 0017 0000000008 GlbVar -$LK,"sys_data_bp ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,121"$0000002218 0005 0000000008 GlbVar -$LK,"sys_dbg_fault_num ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,126"$0000003E38 0003 0000000008 GlbVar -$LK,"sys_dbg_fault_rip ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,127"$0000003E40 0003 0000000008 GlbVar -$LK,"sys_dbg_focus_task ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,5"$0000003828 0002 0000000008 GlbVar -$LK,"sys_dc_screen_image ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,21"$00000038C8 0006 0000000008 GlbVar -$LK,"sys_dft_iso_name ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,30"$0000003920 0003 0000000008 GlbVar -$LK,"sys_dsk_cache_base ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,15"$0000003898 0008 0000000008 GlbVar -$LK,"sys_dsk_cache_ctrl ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,15"$00000038A0 000A 0000000008 GlbVar -$LK,"sys_dsk_cache_hash_table ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,16"$00000038A8 0005 0000000008 GlbVar -$LK,"sys_dsk_cache_size ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,18"$00000038B0 0003 0000000008 GlbVar -$LK,"sys_dsk_reads ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,30"$0000003928 0002 0000000008 GlbVar -$LK,"sys_dsk_writes ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,31"$0000003930 0002 0000000008 GlbVar -$LK,"sys_fault_handlers_code ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,14"$0000003890 0002 0000000008 GlbVar -$LK,"sys_focus_task ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,24"$0000002320 001F 0000000008 GlbVar -$LK,"sys_font_8x8 ","FL:::/SparrowOS/OSMain/Font8x8.CPP.Z,3"$0000004981 0001 0000000800 GlbVar -$LK,"sys_gdttab ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,164"$00000003E0 0004 0000000880 GlbVar -$LK,"sys_heap_base ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,122"$0000001808 0002 0000000004 GlbVar -$LK,"sys_heap_dbg ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,131"$000000181E 0000 0000000001 GlbVar -$LK,"sys_heap_init_flag ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,125"$000000181A 0000 0000000001 GlbVar -$LK,"sys_heap_init_val ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,126"$000000181B 0000 0000000001 GlbVar -$LK,"sys_heap_limit ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,123"$0000001810 0002 0000000004 GlbVar -$LK,"sys_idle_end ","FL:::/SparrowOS/OSMain/Scheduler.CPP.Z,374"$0000004745 0002 0000000001 GlbVar -$LK,"sys_idle_start ","FL:::/SparrowOS/OSMain/Scheduler.CPP.Z,373"$00000044F0 0003 0000000001 GlbVar -$LK,"sys_init_fpu_mmx ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,254"$0000002A70 0001 0000000200 GlbVar -$LK,"sys_jiffies ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,207"$0000002330 0004 0000000008 GlbVar -$LK,"sys_key_cnt ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,106"$0000003D90 0002 0000000008 GlbVar -$LK,"sys_last_down_scan_code ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,107"$0000003D98 0002 0000000008 GlbVar -$LK,"sys_macro_root ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,3"$00000037A0 0002 0000000050 GlbVar -$LK,"sys_macro_util_task ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,4"$0000003820 0001 0000000008 GlbVar -$LK,"sys_mem32_dev_root ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,59"$0000003BB8 0008 0000000028 GlbVar -$LK,"sys_mem64_dev_ptr ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,59"$0000003BE0 0006 0000000008 GlbVar -$LK,"sys_mem_init_flag ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,127"$0000001818 0001 0000000001 GlbVar -$LK,"sys_mem_init_val ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,128"$0000001819 0001 0000000001 GlbVar -$LK,"sys_num_installed_compilers","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,55"$0000003B80 0000 0000000008 GlbVar -$LK,"sys_num_spawned_users ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,11"$0000003888 0001 0000000008 GlbVar -$LK,"sys_pci_busses ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,30"$0000000C62 0000 0000000002 GlbVar -$LK,"sys_pci_dev_root ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,58"$0000003B88 0001 0000000030 GlbVar -$LK,"sys_pci_services ","FL:::/SparrowOS/OSMain/BIOS32.CPP.Z,161"$000002BBA6 0007 0000000004 GlbVar -$LK,"sys_progresses ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,42"$0000002220 0002 0000000100 GlbVar -$LK,"sys_prts ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,32"$0000003940 0006 0000000008 GlbVar -$LK,"sys_put_key_root ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,4"$00000037F0 0007 0000000030 GlbVar -$LK,"sys_raw_dc_col ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,19"$00000038B8 000E 0000000008 GlbVar -$LK,"sys_raw_dc_flags ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,19"$00000038C0 0017 0000000008 GlbVar -$LK,"sys_rnd_seed ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,28"$0000003910 0019 0000000008 GlbVar -$LK,"sys_run_level ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,38"$00000015DC 0008 0000000004 GlbVar -$LK,"sys_semas ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,191"$00000024F0 0045 0000000580 GlbVar -$LK,"sys_task_being_screen_updated","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,26"$0000003908 0001 0000000008 GlbVar -$LK,"sys_temp_cpu0_struct ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,189"$0000002358 0001 0000000160 GlbVar -$LK,"sys_temp_filename ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,2"$0000003713 0003 0000000088 GlbVar -$LK,"sys_timer ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,206"$0000002328 0002 0000000008 GlbVar -$LK,"sys_uncached_heap ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,69"$0000003C20 0001 0000000008 GlbVar -$LK,"sys_var_init_flag ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,129"$000000181C 0000 0000000001 GlbVar -$LK,"sys_var_init_val ","FL:::/SparrowOS/OSMain/Adam1b.HPP.Z,130"$000000181D 0000 0000000001 GlbVar -$LK,"sys_winmgr_task ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,25"$0000003900 0002 0000000008 GlbVar -$LK+BI,"tJ ","FL:::/SparrowOS/OSMain/Misc1a.CPP.Z,161",1223$$LK+BI,"","tJ",1224$00000129EA 0000 0000000022 Funct -$LK+BI,"tNP ","FL:::/SparrowOS/OSMain/Misc1a.CPP.Z,121",1225$$LK+BI,"","tNP",1226$000001288A 0006 00000000A8 Funct -$LK+BI,"tP ","FL:::/SparrowOS/OSMain/Misc1a.CPP.Z,144",1227$$LK+BI,"","tP",1228$0000012932 0000 00000000B5 Funct -$LK+BI,"tS ","FL:::/SparrowOS/OSMain/Misc1a.CPP.Z,166",1229$$LK+BI,"","tS",1230$0000012A12 0019 0000000021 Funct -$LK,"text_cols ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,22"$00000038E0 0016 0000000008 GlbVar -$LK,"text_mode ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,22"$00000038D0 0003 0000000001 GlbVar -$LK,"text_rows ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,22"$00000038D8 0010 0000000008 GlbVar -$LK+BI,"throw ","FL:::/SparrowOS/OSMain/Except.CPP.Z,172",1231$$LK+BI,"","throw",1232$000001507F 001B 0000000022 Funct -$LK+BI,"throw_join ","FL:::/SparrowOS/OSMain/Except.CPP.Z,140",1233$$LK+BI,"","throw_join",1234$0000014F3F 0002 0000000128 Funct -throw_no_log 0000015067 0001 ExportSysSym -$LK+BI,"throw_no_log ","FL:::/SparrowOS/OSMain/Except.CPP.Z,167",1235$$LK+BI,"","throw_no_log",1236$0000015067 0001 0000000014 Funct -$LK,"time_fmt_map ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,133"$0000003E60 0003 0000000008 GlbVar -$LK,"time_stamp_freq ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,46"$0000003AB8 0009 0000000008 GlbVar -$LK,"time_stamp_freq_calibrated","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,44"$0000003AA0 0001 0000000001 GlbVar -$LK,"time_stamp_freq_initial ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,48"$0000003AC8 0001 0000000008 GlbVar -$LK,"time_stamp_kHz_freq ","FL:::/SparrowOS/OSMain/OSGlbls.CPP.Z,47"$0000003AC0 0001 0000000008 GlbVar -$LK,"white_space_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,363"$00000097B4 0006 0000000040 GlbVar -$LK,"word_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,351"$00000096B4 0000 0000000040 GlbVar -$LK,"zero_cr_nl_cursor_bitmap ","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,369"$0000009834 0000 0000000040 GlbVar -$LK,"zero_tab_ff_cr_nl_cursor_bitmap","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,372"$0000009874 0000 0000000040 GlbVar -$LK,"zero_tab_ff_cr_nl_cursor_dollar_bitmap","FL:::/SparrowOS/OSMain/Str1a.CPP.Z,375"$00000098B4 0000 0000000040 GlbVar -$LK,"\343 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,131"$(0x400921F 0000 0000000020 DefineStr -$LK,"\354 ","FL:::/SparrowOS/OSMain/Adam1a.HPP.Z,129"$(0x7FF0000 0007 0000000020 DefineStr -  a RýRýfýný|ý‡ý‹ý‘ý—ý¨ý¹ýÎýÓýÙýðýõýûýþþþ4þ9þ?þMþQþmþ€þ�þ•þ¤þ±þÁþÐþÝþðþúþÿÿÿ-ÿ4ÿBÿTÿTÿTÿgÿiÿ|ÿ~ÿ‘ÿ“ÿ¦ÿ¦ÿÂÿÙÿßÿåÿðÿK a ¨a ³ 4;AQX`fmƒ‘•𧵏½ÀÀÐÞàòô .<?AMOot{„Š�—ššª¸ººâ ;Q\a ³  ì¤«¤«À«Ã«È«Û«î«ñ«ý«¬¬¬¬8¬>¬M¬Z¬|¬‰¬‹¬‹¬–¬œ¬¢¬¤¬ª¬°¬²¬¸¬¾¬À¬Æ¬Ì¬Î¬Î¬ã¬ð¬ò¬ò¬ò¬õ¬­ ­0­;ì�ÄóGaGaXabajaja|a�a�a“a˜a˜aªa¯a¯aÁaÆaÆaØaÝaÝaÝaÝaäaéaéaûabbbbbb.b^bobob€b‡bŽb—b¦bðc9Äó @a†]]‘]š]§]´]Á]Ù]Ù]í]ï]ï]^^ ^ ^ ^-^-^:^B^B^Q^c^k^k^^‘^™^™^­^´^´^¾^ -/a† @ÊÏ/_/_8_E_J_ ÊÏ xš¦š š ª º Î Ú ô ú ü ü !š¦ˆ¦´ -! -!!&!:!D!U!q!w!y!y!�!¦´`†�2 2 ; E K Q S S X †�p�šZ Z d n x ƒ ‹ � � “ �š@¾Ã×^×^à^í^ò^¾Ã@Úß§_§_°_½_Â_Úß@'a'a0a=aBaзɷÉÀÉÑÉàÉëÉûÉ ÊÊ+Ê:ÊIÊYÊiʊʌʛʪʺÊÊÊóÊóÊøÊ!X;C/Ì/Ì>ÌJÌXÌaÌfÌlÌ;C حŷзÐÇÐÓÐäÐóÐóÐÑ>ÑIÑSÑ\ÑiÑvÑƒÑ Ñ§Ñ«Ñ³Ñ·Ñ¿Ñ "­Å!HCioÌo̵̙̫̔̿ÌËÌËÌÓÌüÌÍ -ÍÍÍÍÍ4ÍJÍMÍPÍVÍtÍxÍ̓ͅÍ�Í�͕͕ͤʹÍ"0Ci#@_ÿÖÿÖ ×××$×+×+×6×B×B×Q×^×k×p×y׈׎ווייייצשױ×$)@_%p0;¯Ë¯Ë¸Ë¸ËàËÌÌÌ&Ì+Ì&0;'¸';wßwߋߋ߳ßÖßãßðßûßààà%à/à9àAàIà(';)´Ò'Û'ÛAÛPÛXÛnÛ€Û‹Û‹Û™Û²Û¶ÛÆÛØÛØÛàÛàÛæÛ*Ü1Ü1ÜSÜSÜkܙܟÜÁÜ*(´Ò+ “´Ù٘٘٦٦ٴÙÈÙÈÙðÙÚ!Ú1Ú<ÚUÚpÚ…Ú�Ú²ÚÅÚåÚåÚçÚéÚþÚÛÛÛÛ$Û,+“´-"‡Ô‡Ô—Ô Ô±Ô±ÔÙÔüÔ ÕÕ#Õ0Õ:ÕDÕNÕXÕbÕuÕˆÕˆÕ˜Õ˜Õ¥Õ·ÕÁÕÉÕ.'"/"@ÏÕÏÕÛÕçÕðÕÖÖ)ÖLÖ[ÖhÖsÖ€Ö�ÖžÖ¨ÖµÖ¿ÖÓÖÙÖÛÖÝÖãÖåÖòÖõÖýÖ0("@1¨…—ÇÎÇÎÕÎÕÎýÎ Ï-Ï:ÏEÏRÏbÏkÏuÏωϑϗÏ2…—3°r…÷Í÷ÍÎÎ(ÎKÎXÎeÎpÎ}ΊΗΡΫενÎÂÎ4r…5È—­—ϗϦϦÏÎÏñÏüÏÐ/Ð4ÐLÐLÐaÐaÐvЋРЪаÐ6 —­7à'‡Þ‡Þ‘Þ–ÞžÞ¥ÞªÞªÞÒÞõÞßßß'ß1ß;ßEßOßYßaßhßhßkßqß8#'9 _p·×·×À×À×Ï×Þ×ï×ó×ØØØ$Ø)Ø+Ø0Ø:_p;È;qOàOàaàiàsàà�à�à�àÅàèà÷àáá á.á:áDáHáPáZáZá‚á¥á³áÃáÎáÛáêáöáâââ+â0â8âcâgâyâ~â‹â•â£â£â­â·â<@;q=`ir·Í·ÍÆÍÐÍÙÍäÍíÍñÍ÷Í>ir?x‡“ÙÙÙ0Ù7Ù:Ù=ÙAÙHÙkÙ{Ù@‡“AÀÒçÇÜÇÜåÜéÜïÜõÜøÜøÜ Ý ÝÝ*Ý4Ý7Ý:Ý<ÝJÝB ÒçCÐp‡7Ø7ØUØ[ØdØdØmØmØ|؉شؿØÇØÉØØØØØØØéØöØöØÙD!p‡EſѿÑÉÑÑÑÖÑßÑßÑÒ*Ò2Ò:ÒEÒJÒ^Ò^ÒlÒuÒzÒ|Ò…Ò’Ò™ÒÉÒÉÒÒÒéÒøÒÓ!Ó2ÓBÓRÓbÓqÓ�Ó‘Ó¡Ó»ÓÃÓËÓËÓÐÓáÓðÓÔÔ)Ô9ÔIÔYÔpÔpÔpÔ|Ô‚ÔFJÅGp¬·��Ÿ¢§§²µºÂH¬·Iq�·â·âÙâÝâãâëâôâýâã ããã ã ãLãYãcãfãiãpã{ã�ãŽãŽã ãJ)q�Kx$0WËWË`Ë`Ë~Ë‚Ë�˛ˣˣˣ˨ËL$0Mx$ÿÊÿÊËË&Ë*Ë7ËCËKËKËKËPËN$OPçOÝOÝmÝsÝ|Ý|݈݈ݗݤݨݲÝÄÝÄÝÔÝâÝçÝéÝþÝ ÞÞÞ%Þ%Þ%Þ,Þ:ÞHÞRÞUÞ[ÞhÞuÞuÞ‡ÞP1çQÀ3ÿ¯ÿ¯°&°:°I°b°i°k°w°�°ª°µ°»°¿°ɰR 3Sˆ?M7±7±I±\±u±{±б‘±§±­±³±ͱT?MUx3?ϰϰß°ñ°÷°± ±#±)±5±V3?W�dsLLƒL§L“L·LÉLèLïLM MMMDMXdsY yª¥u¥u¹u¹uÀuÈuÈuÝuæuæuæuvvvvv#v(v2vFvHvSvSvbvjvuvyv~v‚v�v“v–v–v™vžv¥v¯v¿vZ;yª[P ­y­y¶y¿yÅyÊy\ ]Ðîíxíxÿxyy#y+y+y8yByQyYyeyty€y‹y‘yœyŸy§y^!î_Xqymumu{u�u�u™u�u£u`qyaø²îývývwww#w#w2wCwEw\wjwjw}w�w“w™w w©w©wÃwÃwÖwæwýwxxxx*K*K*|*±*±*Å*z«´{@ž§ý§ýÂýÉýÒýæý÷ýÿýþ -þþ+þ+þ2þCþTþWþ]þbþbþhþmþtþ…þ–þ¢þ¥þ·þ¼þ¿þÆþÆþØþØþîþõþÿ!ÿ5ÿFÿNÿUÿYÿjÿ{ÿ–ÿ®ÿµÿÜÿÜÿãÿéÿìÿîÿîÿîÿîÿîÿîÿîÿ ")/244;>@@@CEELOORWau…š�¼¼ÁÁÈÙêòõ÷÷þ((?BBHWù|�ž  }Xnvÿ¸ÿ¸¹¹(¹:¹I¹I¹N¹~nv0<?å?åOå^åuå€å€å‡åœåœå±åÆåÍåÍåìåúåÿå ææææ æ*æ0æ6æ<æAæAæKæVæ{æ{æ”æžæ¤æªæ°æ¼æÁæÁæËæÕæÛæáæáæöæøæç çç/ç5çEçEçEçEçRçWç]çwçzç®ç€M<�ˆ§ã§ã°ã¶ã¶ãÁãÙãäãéãõãûãýãýã䂃°/_ä_änätätää—äœä¦äºäÁäÉäÒä×äÝäßäßäåä„/…¨Xjï ï õ "*[<E†Xj‡pНç¯çµç½çÑçççïçòçôçøçˆŠ‰ ^occ+c+cTcUcVc`cbckcocvczc~c†c‡c�cŠ^o‹poz�c�c¡c³cÅcÙcãcìcöcŒoz�#@‰Á‰Á—Á¦Á©ÁÊÁêÁôÁ Â(ÂVÂcÂmÂsÂ}Â}‰ŒŽŽ˜ž¡ÂÃŽ'#@� @‘ à ÃÃÃ6ÃFÃVÃcÃtÃxÃ~ÃŒÃ�ÖäääôÃÄÃÑÃâÃæÃìÃúÃþÃÄÄÄÄÄ,Ä<ÄLÄYÄjÄnÄtĂĆČĚĚĚĪĺÄÇÄØÄÜÄâÄðÄôÄúÄÅÅÅÅÅ ÅÅ$Å(Å.Å9Å=ÅCÅNÅNÅNÅSÅYÅjÅnÅtÅŃʼnŒŒŚÅ�[@‘‘HÎÔWQWQ`QnQŠQ�Q’ÎÔ“ˆÔâ�Q�Q™Q§Q¼QÇQÍQÙQìQìQïQõQ”Ôâ•P´»Ê*Ô*Û*ã*å*ë*–´»—PÃÊ÷^÷^__$_'_/_˜ÃÊ™péô7`7`W`[`q`…`�`¡`¤`´`šéô›€ÁîĤĤÖ¤å¤õ¤¥¥)¥3¥9¥9¥Q¥Q¥e¥w¥�¥�¥�¥•¥•¥§¥±¥Ò¥Ò¥Ø¥Ø¥Ý¥@¦G¦G¦G¦p¦p¦z¦ަš¦�¦ ¦¬¦³¦¼¦ä¦œ7Áî�xƒ¨¨.¨:¨B¨Q¨U¨U¨i¨{¨‡¨™¨¢¨¨¨­¨­¨Ĩͨͨå¨ó¨ó¨þ¨© ©*©9©9©=©C©K©K©U©U©Y©]©l©|©€©€©”©´©´©éũϩð©ö©þ©þ©ª%ª/ª/ª>ªCªCªUªrªrª�ªªª®ª±ªµª¼ªǪǪݪòª««««#«0«6«=«J«P«P«W«m«w«‹«�«˜« «©«°«¹«Õ«9¬žvƒŸ÷ä¦ä¦ö¦ý¦§§§"§<§Q§[§[§i§n§x§‡§£§ª§µ§çͧò§ö§ù§ü§¨¨ *÷¡&F¤�¤�°�´�½�Õ�ã�è�ë�ù�þ�Ž ŽIŽMŽmŽoŽwޡޥŽÅŽÏŽÖŽìŽ�#�?�[�b�j�¢*&F£X ßMßMóMN.NQNYN¤ ¥€<I # #-#8#E#M#U#]#e#m#u#{#¦<I§�tŒtŒ€ŒŽŒžŒ¤ŒÏŒóŒ�I�M�U�¨©È:PÇÇÙÝÝêê÷÷"1@R\kkuª :P«Xÿÿ !¬­`"''05>GMMR®"¯ðy”ww��”—¥«®¶¿ÎÖÖááéëëòõ°%y”±`Pyww‰Œ�˜› £¦²ÄÇÊÏßâ÷úý  !'.447<<ORTTgggu²3Py³x".WWafii{�„†Œ´".µx.:��™ž¡¡³¹¼¾Ä¶.:·øÉå4W4WLWOWVWgWoWŒW�W¤W«WÈWÈWÐWìW÷WüWüWX-X8X=X=XAXeX¸&É幘GGbss€€��—››¥§§üº»`çðgögöuö†öŒö•öœö ö¦ö¼ç𽈆”2¯2¯@¯Q¯T¯X¯f¯p¯p¯’¯¥¯¨¯¸¯¾†”¿8Y�/—/—3—@—O—T—T—h—}—–—¯—·—Ö—é—ý—K˜M˜Q˜ÀNY�Á 5Fª3ª3¶3¼3Ç3Ç3Ð3Ó3à3é3é3í3ð3ø3Â5FØ“£š6š6ª6¸6Ã6Í6Ú6Þ6õ6õ6ü6ÿ67$7Ä“£Å@âç÷Q÷QûQRRÆâçǸ'{ô€ô€ -� ��"�-�7�>�^�^�e�t�����”�°�¼�Ù�Ù�æ�æ�æ�ô�-‚9‚E‚R‚e‚r‚r‚ƒ‚•‚¢‚¢‚³‚ł݂͂î‚ô‚ƒ-ƒ2ƒ9ƒDƒVƒVƒaƒcƒcƒnƒpƒpƒ{ƒ}ƒ}ƒ‡ƒŠƒŠƒ–ƒ¢ƒ»ƒă̓؃èƒïƒïƒïƒïƒ„„ „&„,„/„”„È^'{ɘ!—¿—¿§¿¬¿Å¿Ñ¿Ù¿ð¿ú¿ÀÀÀÀÊ!Ë>|ø?ø?@ @@(@(@/@F@F@L@ÌH>|ÍH)/P?P?^?e?y??Î)/Ï€o|7ñ7ñFñPñTñhñzñ€ñ‡ñ�ñ§ñ±ñÐo|Ñpû¾¾�¾ξÕ¾Û¾è¾ó¾û¾þ¾¿ÒûÓˆ'Â2Â2Ò2Ô2Õ2Ö2Û233/3435383@3Ô'Õ� -Z2Z2c2€2‰2–2˜2š2©2©2¸2º2º2¿2Ö -×€¢¯ÇèÇè×èìèôèé#é>éFéSévé{éƒéØ¢¯Ù |�_ü_üzü€ü‹üœüœü¥ü¥üªü¾üÇüÒüÒüÝüÿüÚ|�ÛH¶¼?ô?ôMôSô^ôdôܶ¼Ý–¶óó óó$ó3ó?óXóXóXó`óeóeó‰ó˜ó¹óÑóÙóÛóÛóæóæóæóøóÿóÿóôô:ôÞ*–¶߸n‚ZZcw�‘ª·¾ÉÝõ÷càn‚á  -ÍyÍyïy zzzz,z@zHzNzTz]zlzxzŽz¥z¨zªz¼zÒzØzâzæzëzôzúzýz{â+ -ã(_„žžž´žΞמÛžížöžÿžŸŸŸŸŸ0Ÿ?Ÿ?ŸWŸjŸsŸ}Ÿ�Ÿ�Ÿ§ŸºŸßןߟåŸîŸôŸûŸýŸ   ! 1 4 ? I R _ f j r z ‚ ” š   § ­ · ½ É РÒ $¡äL_å¸ Œ�ž� �¨�Â�Ø�æ�ë�þ�žž(ž2ž>ž@ž€žæ ç@^cJ1J1N1]1a1è^cé@Y^212161E1I1êY^ë@chb1b1f1s1w1ìchí@hmz1z1~1ƒ1‡1îhmï@mrŠ1Š1Ž1£1§1ðmrñHrxª1ª1®1®1é1é1í1òrxó@x}ò1ò1ö12 2ôx}õ8}� -2 -22!2ö}�÷€�œï¹ï¹ÿ¹ º ºº?ºHºLºZº]ºeºø�œù -(Š:Š:§:ª:³:³:Ï:â:; -;$;,;9;C;H;T;Z;a;a;n;q;z;};€;…;¬;ú( -(û`.7Ò;Ò;à;ì;<< <<ü.7ý` -ÉÚÉÚÎÚÖÚæÚðÚÛÛÛþ -ÿ`&\�\�e�e�e�{�˜�˜���&¸ÐŠFŠF§F®F¯F°FÈFÓFèFøFGGG"G"G,G6G@GHGRG`G`GjGvG{GŒGŒG£G­G¶GÁGÕG×GáGæGíGóGúGHHHHHzH>ИØèê8ê8ü8ý8þ89#959B9C9^9d9y9Øè èùz9z9’9“9”9ž9¹9Ä9Ñ9Ò9í9ó9ÿ9èù ù -:::::&:A:J:W:X:s:y:…:ù -  ÇØZ8Z8f8g8h8r8�8¡8®8¯8Ê8Ð8ã8 -ÇØ  ¯ÐBBB(BŠF +¯Ð  ¶ÇÂ7Â7Ô7Õ7Ö7à7û7 88868<8T8¶Ç°£¶*7*7<7=7>7H7c7m7t7{7ˆ7‰7¤7ª7¼7£¶pã”œžœµœÀœÀœËœÏœÏœÕœãîЄ›¡¡/¡2¡>¡E¡R¡U¡[¡g¡l¡�¡¡¡¥¡°¡°¡Ç¡Ù¡Ü¡ê¡!„›�u„„ „ › § ® º Ç Ï Ú Ú ñ ¡¡¡u„P t�t�’�Ž�Ÿ�©� PL -S -: : P c l r z L -S -À^s>>'>8>I>Z>k>|>�>ž>¯>À>Ñ>â>ó>??&?7?@ ^spîùܜܜìœ��� �$�$�,�îù pù,�,�6�M�X�X�c�k�k�q� ù!Àô ŒˆŒˆ�ˆ«ˆ°ˆňňÞˆàˆàˆùˆûˆûˆ‰‰‰‰‰‰‰j‰" ô #p¿¿ ¿^¿e¿p¿{¿ƒ¿†¿�¿$%péôLˆLˆ]ˆkˆpˆ|ˆ‚ˆ‚ˆŠˆ&éô'ÐÖ ŸŸº¼ÎÜè÷ü  !!+.DXl~~ƒ¨ÁÊÍÍØÒüþ-==DJMR\c@(AÖ )°<o÷À÷À ÁÁ#Á#Á9ÁPÁPÁaÁyÁ†Á™Á¥Á°ÁÀÁÀÁâÁäÁäÁ ÂOÂVÂ_ÂeÂlÂrÂwÂ}Â�ˆ“™œÂÃÂ*=<o+(œÞgºgº{º—º¥º¥º³º·ºÁºźɺÚºÚºïºøºüº »»(»/»>»A»A»M»‚»Ž»š»¢»¬»¹»¹»Ê»Ü»é»é»ú» ¼¼$¼*¼Q¼c¼q¼v¼�¼‘¼˜¼˜¼˜¼¤¼ȼԼ߼å¼ì¼ò¼û¼þ¼(½,LœÞ-H(.²;²;À;É;Ï;.(./€ _N_NoN€NŽN˜N©NºNÄNÎNßNåN0 1`NWj=j=t=‚=Š=­=Æ=î=2NW3ð 'ôô€ €€€!€!€/€;€;€M€S€S€]€i€†€—€—€—€—€�€�€§€©€©€î€4% '5Xv~O¹O¹\¹f¹j¹p¹s¹{¹6v~7X~†¹¹й“¹¡¹­¹²¹¸¹8~†9€an—¸—¸¢¸¢¸®¸°¸½¸í¸ó¸ö¸ü¸:an;X 4�4�8�N�b��†�Š�< =ˆž¬ÿÿ&ls€†Š>ž¬?ÀK`ÏÅÏÅëÅ÷ÅÆÆÆ Æ/Æ5ÆNÆRÆVÆ\Æ_ÆfÆqÆqÆ}Æ@ K`Ax?K‡Å‡Å™Å£Å§Å¬Å¸Å½ÅÁÅÅÅÏÅB?KCH'-¿Ä¿ÄÉÄÑÄãÄéÄD'-EH'OÃOÃ]ÃhÃmÃ{ÇÓÜçòýÃÂÃÐÃÞÃìÃìÃÄÄÄ.ÄMÄUÄ]ÄhÄjÄ{ĆěĦĨıĻÄF0'GÈYogðgðkðwð€ð�ð›ð¤ð«ðºðÇðÎðÔðññññññ0ñ1ñ5ñH YoIÈ`vÆÆ‹Æ›Æ¦Æ«Æ¸ÆÁÆÅÆËÆÑÆÙÆáÆéÆÇ ÇÇÇÇJ `vKp4?/Å/Å;ÅZÅfÅjÅnÅrÅzÅ‚ÅL4?MP-4ïÄïÄøÄÅÅ$Å)ÅN-4OXù‰Ú‰ÚŸÚ²Ú¹Ú¿ÚÉÚPùQ8; AÇAÇSÇ[ÇnÇydžǓǠǷÇÌÇÍÇÎÇéÇôÇÈÈÈÈ(È,ÈGÈLÈSÈSÈ[ÈuÈxȆȕȦȬȲȲȾÈÍÈâÈçÈôÈÉ(É/É/É6É6É=ÉEÉLÉVÉ_ÉmɃɦɦÉÁÉÁÉÈÉÒÉèÉ -ÊÊÊÊÊ4ÊVÊ[Ê[Ê^Ê}ʀʌÊ�ʒʰʰʵʵʵʽÊÂÊÆÊÖÊÙÊòÊòÊ÷Ê÷Ê -ËËË1ËOËRËTËTËgËnËvˌ˪˭˯˯ËÎËÑËñË1Ì<ÌGÌPÌYÌ]ÌkÌqÌq̟̲̼̎̎̎̓̓ÌÍÌÐÌÓÌØÌØÌÝÌõÌøÌÍ"ÍbÍmÍx͚͑ͣͧ͵ͻ;ÍÃÍÃÍÓÍÖÍÙÍçÍðÍöÍùÍþÍþÍ0Î<ÎHÎXÎmΒΨάÎÂÎÜÎêÎóÎ÷ÎúÎúÎúÎ -ÏÏÏÏ#Ï/ÏLÏOÏQÏbÏiÏuώϤϧϮϱϳÏÓÏèÏïÏïÏöÏÐ ÐÐ#Ð)Ð0Ð;ÐDÐSÐbÐqБÐÖÑRî; S¸;¡Å¡Å·Å¿ÅÃÅÆÅÑÅãÅãÅñÅÆÆÆ Æ*ÆAÆFÆOÆSÆ]ÆeÆhÆkÆÆÆ–ÆžÆµÆ¼ÆÅÆÈÆÊÆÚÆÝÆ߯äÆîÆôÆûÆþÆ Ç&Ç>ÇT>;UX "%"%&%.%6%>%B%F%V WhJ%J%N%V%^%f%n%v%z%~%XYˆ)‚%‚%†%Ž%–%ž%¦%®%¶%¾%Æ%Ê%Î%Z)[€ÚJÚJæJéJ÷JþJ -K KKKK\]à4mŸ�Ÿ�µ�¸�Å�×�ë�û�ÿ�ž ž/žBžqžqžuž€žŒžŽžŽžŽž”ž”ž—ž™ž§žžžÇžÕžèžóžýž ŸFŸƒŸ•Ÿ¦Ÿ¦Ÿ¸Ÿ¸Ÿ¸ŸÄŸÄŸÔŸØŸØŸÝŸÝŸ ^C4m_¨_”_”c”|”‹”�”•”«”²”Ĕהꔕ•••••`axcoôŸôŸùŸ    ' + / / Z bcocØ-E{{){;{E{X{b{{�{�{˜{Ÿ{£{«{¯{·{½{Ã{Ã{Ò{d"-Eeðà¼c¼cÀcÄcÌcÝcìcöcd=dOdadadedtd~d~d�d˜dœd«dÈdÏdÏdådídee0e@eHeMe`eoe�e e«e½eÏeêeñeñefffff$f$f2f6f:ffEàgYpVpdpopop‚p›p¯pÄpÞpâpàp0q>qRq`qxq“qžq¼qÒqÒq1rrrPr^rnr‰r§r½rÂrsárßr/s/s8sAsAsVsVsgsnsnsƒsƒs”s”s—s›sp�Yì  q /@gPgPkPrP�P‘P˜P¾P¾PßPæPíPúPQQr/@s8+o¼[¼[À[Ä[Ì[Þ[ó[ü[\\&\5\:\I\U\m\}\�\˜\´\É\Û\ã\] ]]*]O]c]q]]š]²]¶]»]»]Ð]Ð]ç]ù] ^"^$^$^7^?^?^?^V^V^_^_^q^x^x^Š^‹^�^µ^tN+ou¸o£¼^¼^À^È^Ñ^å^ù^ __$_)_8_A_U_{_{_�_¦_À_È_Þ_æ_`&`1`R`m`v`„`–`˜`ª`¶`¸`Ã`×`×`ø`ø`a -aaaa+av>o£w˜CsLxLxrxuxwx‰x•x�x�x¯x¯xÂxÕxäxéxþx y yy#y1yAyDyGyKy\yŠy’y–y›y£y£y´yÅyÅyÍyÕyÕyØy zx:CsyÐìCœsœs s°sÅsÔsÞsçsøst(t8tKtStot„t¥t­tÒt×tâtôtu!u!uEucujutu�uˆu—uŸuŸuÎuèu(vûuvîuNvgvovovžv¸vÂvÕvÝvÈv(w(w(w^w^wswswŠwœw¤w·wÏwâwêwêwøwx x xx!x,x,x:x:x=xKxzaìC  {ˆsÁ z zzz+z3zBzWz`ztzŒzœz²zÅzÍzézþz{{={B{M{Z{l{‘{¥{Ä{Ó{ÿ{ -||-|8|M|p|�|œ|¥|»|Û|ö|} }$}/}/}:}:}O}O}f}x}‹}‹}”}”}§}º}Â}Â}Â}Ð}Û}â}í}î}~~ ~|XsÁ }P@‡QQ QQ+Q;QJQSQaQoQvQ€Q‹QŸQ¬Q´QÈQÕQéQöQ -RR(R2RFRPRdRqRqR~R‰R”R¨RÏRÝRëRøRSS S=SQSaSkS|S�SžS¯S¯SâSðST*TATJTYTtT‹T”TŸT¦T±T»TÄTæT~Q@‡x´àÄaÄaÈaÐaÙaøaÿabb#b-b9bDbDbSbtb•b¥b­bÃbÎbÎbÖbÖbåbc'c7c?cUc`c`crcrc€c‡c‡c™c™c§c§c¨c¨c¹c€6´à�`Áê~~~(~9~H~S~b~o~Š~Ÿ~¥~©~­~µ~½~Æ~Ü~ä~ù~ÿ~ $:MVVgnnˆ‚3Áêƒà/çNçNëNúN OO2OROrO�OÁOÔOåOðOýOP/P/PDPKPKP`PaPeP„#/…�ª¹_V_VsVvVŽV—VªVÅV×VãVíVWWW!W†ª¹‡ð‡¢çTçT÷T UUU.U1U5U>UNUQUZU]UsU™U¡U®U®U´UäUéUïUüUˆ%‡¢‰X¢ªÿUÿU VVVQVWV]VŠ¢ª‹ˆÜ’Ü’õ’ù’ “,“7“?“D“[“a“e“q“Œ�Ø_w––&–/–5–;–K–P–P–_–_–|–•–›–¬–¬–¸–Á–Ç–Ç–Í–Ž"_w� _̓̓ê“ù“””””/”B”M”W”a”h”w”~”Š”�”“” ”©”¿”¿”¿”ڔ씕•$•(•(•L•T•T•\•`•d•q•v•„•‹•‹•›•¦•«•«•«•Á•Å•ä•é•é•õ•û•–––�I _‘ •Æô—ô—˜˜*˜?˜?˜P˜W˜g˜v˜v˜|˜—˜š˜Ÿ˜­˜Á˜ȘÒ˜Ò˜ç˜ç˜ý˜ ™5™b™l™o™r™w™…™¥™¯™²™µ™½™Ë™ë™õ™ø™ø™ÿ™šš’;•Æ“w•Ô–Ô–ó–÷–— -——!—B—B—L—L—b—n—u—ˆ—�—‘—¤—Å—Å—Ï—Ï—ã—ã—æ—ô—”(w••Xt“t“}“}“ˆ“ГГ�“–—` ”“”“�“£“¼“À“À“Å“˜ ™¸Æšš:š>šFšWšWšhšpš€š€š�šœš¢šºš½ššÇšÖšášèšìšðšþš››#›)›,›9›?›N›N›d›f›i›i›k›…›‘›¼›å›é›õ›ü›œ œ œœœ.œ.œ.œ3œ?œ`œdœoœrœuœ{œ~œ‹œ‹œ œ œ œ¨œ´œÕœÙœäœçœîœÿœ����4�š^Æ›p/zHˆH�H–H�H¦HÂHÌHÑHäHïHÿHII/I9IKIPIZIbIlII‰I¾IØIüI JJJ$J/J5JqFqNqQqYq´ µˆ3A -r -rrrr$r%r)r)r6r7r;r;rAr¶3A·�$3ÂqÂqÐqÑqÒqÜqÝqáqáqîqýqþqrrr¸$3¹¸{�”„”„ž„¨„¯„¶„¿„̈́؄ڄç„ó„……"…(…0…º{�»À�Ä4…4…P…V…b…b…r…u…‡…‘…¢…¸…Ð…Ô…††#†,†P†X†}†�†�†©†©†¸†À†ΆÛ†ä†ô†ö† ‡‡#‡,‡<‡C‡C‡C‡J‡Q‡V‡\‡^‡a‡€‡¼?�Ľp!,ÀÀ%À+À5À<ÀBÀLÀOÀUÀ¾!,¿` -'µ'µ1µ;µZµ`µbµhµÀ -Áx -oµoµµ޵޵žµ¡µ£µ«µ®µ¶µÂ -ÃÈTŠ\�\�…�“�–�Ÿ�²�Ç�Ç�Ç�á�ã�ã�ã�ý�ÿ�ÿ�ÿ�ŽŽŽ%Ž%Ž.ŽQŽ]ŽpŽ…Ž…Ž…ŽŸŽ¡Ž¡Ž¡Ž»ŽÀŽÀŽÀŽÚŽߎߎéŽéŽîŽôŽþŽ� �­�Ä@TŠÅÞû/½/½=½=½M½P½[½^½o½s½w½š½§½·½½̽Ó½¾¾9¾J¾R¾Y¾`¾g¾j¾~¾Æ'Þûǘ,<WÀWÀaÀdÀpÀ}À‡À”À¬À¬ÀËÀËÀèÀìÀðÀöÀÈ,<É@ Nl‰l‰‰‰‹‰›‰£‰¯‰»‰ì‰ü‰ŠŠ&Š4Š9ŠKŠbŠlŠ|Š|Š�Š�Š˜Š±Š±ŠÙŠÛŠÛŠ‹‹‹-‹/‹/‹9‹9‹\‹h‹„‹„‹¬‹®‹®‹Ö‹Û‹Û‹ŒŒŒŒŒŒ0Œ:Œ@ŒLŒXŒdŒ‡Œ�Œ—ŒšŒ;�ÊO NË`Š“´�´�½�Î�Ù�Û�Û�à�ÌŠ“ÍÈ“©ä�ä�ð���&�,�A�J�J�l�Š�—�ž�ž�ž�¢�¢�ª�Î “©ÏX©Ñ¬�¬�Ï�Ò�â�ê�ö�ÿ�‘‘‘<‘>‘>‘>‘f‘h‘h‘r‘t‘t‘~‘~‘¢‘·‘À‘͑ё鑒!’*’0’7’:’—’Ð2©ÑÑÈÄÚ„‡„‡–‡¤‡©‡·‡½‡Á‡ć·Ò ÄÚÓ 2S_·_·s··¢·¤·¤·±···Á·Ò·Ô·Ö·Ö·ã·ù·û·ý·¸¸¸¸¸¸¸¸¸%¸+¸.¸<¸Ô+2SÕpFQl�l�u�}�€�Ž�’� �¤�©�ÖFQ×xam�� ���&�*�.�<�@�E�ØamÙh4>¨?¨?¶?¶?Ñ?Ñ?Ô?ë?ë?ñ?Ú4>Û@$)(?(?6?J?P?Ü$)ÝXYaoˆoˆyˆ{ˆ�ˆ•ˆšˆ ˆÞYaßPšÁ|£|£œ£¥£­£²£·£Á£Á£Æ£УÕ£ã£ã£ê£ð£ö£þ£ -¤¤¤¤¤ ¤%¤-¤9¤?¤A¤A¤K¤M¤M¤W¤W¤¿¤à1šÁáhµ¿¯‹¯‹Ç‹Ô‹Ù‹Ù‹ï‹ò‹Œâµ¿ãHÀÆT’T’X’b’u’äÀÆåè†ÀÔ�Ô�â�å�õ�ö�÷�‘‘‘ ‘ ‘‘‘‘ ‘&‘,‘3‘9‘@‘F‘M‘S‘Z‘`‘g‘m‘t‘z‘…‘‹‘�‘™‘¡‘¡‘ª‘«‘«‘¼‘ϑёå‘ì‘û‘ -’’(’7’F’F’P’æD†Àç`3 -< -’’¦´ºè3 -< -é@B4­4­N­W­z­„­ž­¡­­­°­¶­¹­ç­ó­ø­®®®®)®,®6®9®g®s®x®ˆ®ˆ®–®–®–®–®¢®¢®°®ê/Bë³ 3 -RRptww‹ž­·»¾ÀÊÎÑ×Úí(8BNRehty„ŒŸ¹ÅÈÈÜðúú 1=XXXl€Ž“““§·¾ÃÃÃ×çþ -KPPVjz˜���±ÁÏÔÔÔèø    /=??????Sgwyyy��§§®®··À’슳 3 -íh‹µ/Š/ŠIŠ_ŠyŠˆŠ¨Š²Š·ŠÙŠàŠâŠâŠñŠûŠüŠýŠ‹ ‹ ‹‹ ‹!‹0‹5‹D‹]‹d‹~‹~‹�‹œ‹ ‹¬‹î4‹µï�ap§ˆ§ˆňÙˆçˆðˆ‰ ‰‰‰7‰:‰H‰ðapñxÌ�Ì�Ñ�Û�Û�ì�î� ž'ž'ž'ž*žòó𖱇«‡«™«š«›«¬«®«À«ëȫҫà«ï«ð«ð«ü«¬ ¬¬¬%¬&¬(¬2¬ô%–±õ8Æê'Œ'ŒBŒDŒUŒZŒdŒ…ŒžŒ¨Œ³ŒËŒÒŒÔŒÔŒæŒìŒòŒôŒúŒ�� � �� �&�&�&�-�>�ö.Æê÷H#ŸSŸS©S±SÉSÏSø#ùH‚ˆj@j@n@ˆ@•@•@—@ú‚ˆû` -ÙÑÙÑãÑíÑÒÒ ÒÒü -ýßÿƒƒŒ––¦³¼ÅÎ×âëôôÿ€€€ € €3€<€<€b€b€d€t€z€€þ*ßÿÿ€ ˀˀó€� �����(�5�8�H� ˆÿ ƒ€ƒ€�€–€š€Ÿ€£€©€¬€·€½€Å€ÿ hÕß33CObjru}ÕßXÍÕ  '--2ÍÕ¨�¡wdwd‹d’d¤d­d°d·dÇdÚdîdødeee�¡ €Z‡ojojjŒj’j’jšjšj§j©j¿jÆjÆjÍjæjójüjkkk k%k%k-k2k?kDkVk]k�k„kŸkŸkŸk£k¨k¨k¶k -7Z‡ Pc -j -ú ú þ  - - -V - c -j - H º.Å.///$/ èg�wXwX{X†X‘XœX§X²X½XÈXÙXêXûXYY#Y5Y$@$C$F$N$Q$Q$]$p$p$z$�$–$™$›$¡$­$ &Ws!Ð<GGKWw‹�žª¸Çÿÿ.KUb‡‡•²²ÁÐä    *99=BKK]dr�¬µµÇÇÍ #"A<#8LPÂ0Ì0ñ0ö0$LP%p,§…§…«…±…À…Ņԅ󅆆††)†4†4†C†C†T†f†k†w†€†…†•†•†±†¸†ņцÚ†߆߆߆ÿ† ‡ ‡9‡>‡@‡&5,'@Ÿ¤ -o -oooo(Ÿ¤)�gvbmbmtm€m•m¤mÆmÊmÎmÚmßmâmìm*gv+èv�òmòmnn&n&n2nTnUnVnbnknŠn–nŸn©nªn­n½n,$v�-ˆ²ÀZoZoboyo„oŠo�o–o©o°oµo»o.²À/ÀÞÂoÂoÈoåoðo÷op,p1p5p>pMp\pepipmpqp0(ÀÞ1¸Þòrprpwpxpyp�pŸp¡p¹pÑpæpþpq2Þò3P¤«"o"o*o/o6o4¤«5P«²:o:oBoHoNoSoZo6«²7€1> -& -&&&'&)&3&>&G&U&`&b&g&81>9��ŸÂnÂnÆnÌnÒnØnÞnänênðnönünoo:�Ÿ;` -"2"2'212K2Q2S2S2V2< -=�ÚéÔ‡Ô‡ä‡ù‡ˆˆˆˆ!ˆ%ˆ,ˆ3ˆ6ˆGˆ>Úé?` ('¶'¶1¶I¶‚¶ˆ¶жж�¶@ (A` ·µ·µÁµÙµ¶¶¶¶ ¶B C`†�¿¹¿¹ʹÓ¹Ó¹Þ¹â¹â¹è¹D†�E8PTú0þ0 11FPTG8 B.F.T.V.H I8 $*/./E/G/J $K8@DJ0N0o0q0L@DM8š.ž.µ.·.NO8HLª0®0¼0¾0PHLQ@-2····Z·R-2S`DM—–—– –®–´–Ì–ΖΖÓ–TDMU8*.‚/†/”/–/V*.W837Ò/Ö/ä/æ/X37Y@(-—¶—¶ ¶­¶·Z(-[&†ßnßno o ooo o o$oLohokozo~o…ožo§o©oÂoËoËoÒo×oÜoæoëoðoðo÷oüop ppppp!p&p0p5p:p:p:pFpHpWpWpWpcpeptptptp€pŠp�p’p”p”p”p�p§p¬p¯p±p±p±pºpÄpÉpÌpÎpÎpÜpápåpçpçpìpqq\j&†]P+2O[O[S[i[n[‚[„[Ž[^+2_`"+÷Z÷ZûZ[[*[7[D[N[`"+ax"‡Z‡Z–Z¬ZÁZÌZÓZÕZÕZâZðZb"cˆÙOuOuTueu•u•u¥u³uÄuôuôuvvvvv*v,vƒJƒMƒMƒMƒVƒbƒdƒdƒsƒuƒ�ƒ‹ƒ™ƒžƒ­ƒ´ƒ¶ƒ¶ƒ¶ƒ¼ƒn/=oh÷·�·�»�À�Ì�Ø�ä�ï�ö�ø�p÷q8=a¿ƒ¿ƒÃ΃áƒñƒ„„!„9„Q„\„g„n„u„|„�„ž„¯„Єñ„……*…5…@…N…\…j…q…|…‡…Ž…•…¦…r.=as€†³'q'q,qJq[qkqrq¢qºqÅqÅqÜqáqáqñqóqrr:rGrirnrnrnrnrr’r r±rÉrËrËrÞrïrs s s st7†³uÀ_w_wgwiwxwŽwšwªw¡w³w¸wÃwºwÌwÑwÑwÓwÖwÜwv w�2A�[�[“[§[«[Ñ[÷[\,\8\F\M\Z\w\{\x2Ay¨ÿ$$3$G$N$X$\$`$d$d$n$n$x$‹$¥$¨$¸$zÿ{Pº$º$Ä$Ø$æ$% %|}è6_•_•v•Š•••••£•§•³•ǕǕҕՕܕå•ê•ï•––––,–~$6˜Qa¬�¬�µ�½�À�Î�Ñ�Ü�à�ã�ç�õ�ü��€Qa�ˆm{L�L�U�]�`�n�r�v�y�‡�Ž�“�‚m{ƒ` -h>h>l>l>€>€>”>˜>œ>„ -…h&·a·aÁaÃaÈaËaÎaÓaÙa†&‡hoaoaaŽa“a¡a¤aªa²aˆ‰hGaGaQaVaYa_abadajaŠ‹h&0ßaßaéaëaðaùaüabbŒ&0�œÚ”š”š²š¼š¿šÉšãšãšïšùš›› › › › ›J›M›P›R›e›h›k›~›„›Š›Š›—›š› ›¢›¨›¨›´›´›À›Â›Â›Ì›Ì›Ì›Î›Ü›ã›ã›ã›é›ì›ñ›ô›ù›œ œœ œŽHœÚ�°‰œ4š4šBšKšWš]š`šešošršwšwš„šˆš‹š‹š‘š�‰œ‘Øßƒ‰ƒ‰¡‰°‰Ç‰Í‰Ô‰Ô‰ä‰ ŠŠŠŠ/Š/Š;ŠXŠZŠxŠzŠ}ŠŠŠ•ŠœŠœŠ Š«ŠÂŠÂŠËŠÑŠÝŠåŠ ‹!‹'‹:‹:‹T‹[‹^‹v‹’Bß“h!{‹{‹‹Ÿ‹Ñ‹”!•8?ƒ‹‚‹‚¡‚¬‚®‚²‚ʂւڂö‚ƒƒƒƒƒƒ7ƒ>ƒHƒNƒUƒaƒmƒuƒ~ƒ‚ƒ“ƒ“ƒ“ƒœƒ ƒ§ƒ«ƒ«ƒ½ƒÐƒÙƒÜƒÜƒêƒùƒûƒûƒ„„„„'„,„B„G„Z„_„x„x„x„‹„µ„–N?ƒ—ðŽÉ……)…+…D…P…T…p…‚…‚…‚…Ž…š…¡…¡…¬…¶…Æ…Ð…Õ…Õ…Þ…î…ó…ó…ó…† -† ††*†:†<†<†<†R†X†d†p†w†{†‹†‹†Ž†š†«†½†¿†¿†Ä†æ‡˜EŽÉ™ÈÉßë‡ë‡ÿ‡ˆˆˆ2ˆ@ˆ@ˆJˆLˆLˆVˆXˆXˆcˆcˆeˆ�‰š Éß›`nZ -Z -^ -o -€ -‘ -¢ -³ -Ä -Õ -æ -÷ -  * ; L ] n †  — � ¨ ¡ ¹ ² à Ô å ö     0 ) A : R K c \ t m … ~ – � §   ¸ ± É  Ú Ó ë ä õ     ( Xœsn�hßéÇ_Ç_ç_ë_`` `"`2`žßéŸpÏÚO_O_a_j_s_~_“_–_ _ ÏÚ¡P¿ÆŒŒŒ!Œ&Œ¢¿Æ£èÍçz±z±~±‡±¯±Õ±à±ò±õ±²² ²²²²²¤$Íç¥`vª¶ª¶®¶³¶Ͷæ¶ë¶í¶¦v§Xç"²"²,²/²E²H²S²a²j²u²~²�²�²¥²°²±²³²³²³²ײõ²õ²õ²ÿ²³³³³ ³7³@³I³O³O³X³Z³Z³³¨2ç©P†ú®ú®¯¯¯'¯,¯ª†«x‹ò¶ò¶þ¶·· ·· ·&·)·+·3·¬‹­h -»»»#».»5»=»b»ž»® -¯P´»‚°‚°†°‘°–° °¢°°´»± ßò¹ò¹÷¹ººº$º$º2º>º>ºLºLºgºŒº–ºœº­ºǺÒºàºýº» » »»²+ß³ ”¥º¯º¯ɯÒ¯ܯÞ¯í¯í¯î¯ï¯ö¯þ¯°*°+°1°´”¥µh¥¯2°2°<°=°>°E°M°]°^°c°¶¥¯·XEM:µ:µTµlµvµ¸EM¹¸Mazµzµ†µе¦µ°µµµ¸µ¹µĵɵÙµâµãµçµðµöµùµ¶ºMa»@¯´j°j°n°y°{°¼¯´½0"E´´8´G´h´r´r´‚´‚´‘´›´Ÿ´£´§´«´·´Ø´å´æ´ç´ò´÷´µµµ µ"µ4µ¾-"E¿°"‚³‚³‡³”³•³•³š³¥³°³³γγæ³õ³ü³ ´ ´ ´ ´À"ÁÀav¶¶"¶?¶I¶N¶T¶X¶Y¶Z¶e¶j¶z¶ƒ¶„¶�¶“¶–¶¦¶Â avø‹ß:·:·F·L·[·h·m·m·n·o·|·ƒ·ˆ·’·¦·°·½·Ë·Ü·ù·;¸U¸k¸v¸“¸•¸ ¸ª¸µ¸¿¸ʸÔ¸߸í¸ô¸ô¸¹¹¹"¹4¹B¹h¹s¹{¹‚¹�¹“¹˜¹�¹§¹»¹Źǹ̹ιϹÖ¹ð¹Ä^‹ßŨ»Í¢°¢°§°¼°˰̰Ͱê°ó°±+±3±N±k±k±t±y±Æ»ÍÇXD -L -òò  " ( + 3 ÈD -L -ÉèÓ�ԹԹݹݹñ¹ººº<º<º`ºRº�º�º³º—ºÔºÔºêº»»=»)»^»^»t»ž»ž»É»´»ê»ê»¼0¼0¼a¼F¼‚¼‚¼˜¼Â¼Â¼í¼Ø¼½½$½T½T½…½j½¦½¦½¼½í½í½¾&¾&¾J¾<¾k¾k¾�¾�¾¾¾¾¾Ô¾ý¾ý¾'¿¿H¿H¿^¿ˆ¿ˆ¿³¿ž¿Ô¿Ô¿ê¿ÀÀKÀ0ÀlÀlÀ‚À¬À¬À×ÀÂÀøÀøÀÁ>Á>ÁoÁTÁ�Á�Á¦Á×Á×ÁíÁÂÂ,Â]Â]Âsœœ²ÂãÂãÂùÂ"Ã"Ã8ÃYÃYÃoÃ�Ã�æÃÉÃÉÃßÃÄÄÄAÄAÄWĀĀĖÄÇÄÇÄÝÄÅÅ$ÅMÅMÅcŌŌŢÅÓÅÓÅéÅÆÆ0ÆSÆSÆiƄƄƟƟÆÒÆÒÆÇÇ Ç ÇSÇSdždžǭǭÇ×Ç×ÇÈÈÈCÈCÈ~ÎÊÄÓ�ËÐ�Ą΄ΙΩΰθοοÎÛÎíÎíÎòÎûÎÏ ÏÏÏ!Ï*Ï,Ï,Ï5Ï>Ï@Ï@ÏIÏRÏWÏWÏ`ÏiÏnÏnÏnÏwπυυϔÏ�ϢϫÏÈÏåÏøÏøÏÐ -ÐþÒÌA�ÄÍðxÓt°t°}°}°‘°£°£°¹°Ü°Ü°ò°ò°*±T±T±j±j±›±¾±¾±Ô±Ô± ²6²6²L²L²}² ² ²®²Û²Û²é²³³+³T³T³b³’³’³ ³×³×³å³ ´ ´.´s´s´�´Á´Á´Ï´ -µ -µµZµZµhµ®µ®µ¼µ ¶ ¶¶e¶e¶s¶¹¶¹¶Ï¶ë¶ë¶···0·I·I·_·„·„·Ó¹ÎexÓÏ`Ä-ÓÓÓ&Ó-Ó5Ó<Ó<ÓXÓ\Ó\Ó|Ó|ӇӊӌӌӗӚӜӜӧӪӬӬӷӺӼӼÓÇÓÊÓÏÓÏÓÚÓÝÓâÓâÓíÓðÓõÓõÓõÓ÷ÓúÓúÓÔ$Ô$Ô8ÔHÔHÔJÔJÔMÔWÔ\Ô\Ô\Ô^ÔaÔaÔhÔwÔ„Ô†Ô†Ô‰Ô“Ô˜Ô˜Ô˜ÔšÔ�ÔŸÔŸÔ£Ô¦Ô¦Ô¦Ô­Ô¼ÔÊÔÌÔÌÔÏÔÙÔÞÔÞÔéÔéÔúÔÕÕ ÕÕÕ(Õ,Õò×ÐsÄ-  ѨM_L§L§`§l§t§{§„§Š§�§�§¡§®§´§·§Ã§ÒM_Ó€•¢GèGèUè[ègèsèwè‹è è¨è½èÃèÔ•¢Õp ŒŒ›±ÀÛßåççíÖ ×XÀ>À>Ä>Ä>Ø>Ü>Ü>à>ØÙüÏgÏgågðgõgþgh)h1h9hFhPhWh^hbhfhqhwh€h„h�h“h–h¤h¦h´hÚ)üÛ ,·h·hÁhÈhÓhØháhðhöhýhÿhi iiÜ,Ýð¾Ù'f'f-f:fKfUf\fcflftfŒf“fšf¤f¬f³fºfÂfÈfÓf×fÙfÙfÝfÞ%¾Ùß¡¾ee#e*e=eIepeze„eŒe”eœe¨eºeÌeÌeæeòeûe ffff f'fà'¡¾á ,=ii%i(i3i8iEiPi_iuiiˆi‘i”ižiâ,=ãp=HŸiŸi­i´i¿iÄiÆiÝiÝiæiìiä=Hå¨5Gª[ª[¶[·[¸[Ã[Å[Ë[Ô[×[Þ[á[ì[í[õ[æ5GçpA¬¢V¢V¸V¿VÁVÍVÎVÏVÙVÛVáVáVèVèVîVõVõVWW -WWWW!W+W/W4W4W4W4W;W;WFWIWKWPWPW[W]WeWeWvWxW~WƒWƒW›W¦WªWµWÃWÏWÙWÝWßWßWâWìWðWýW -XXXXX X X0X6X?XFXJXLXLXLXLXLXSXWX[XbXeXiXnXwX‰X�X˜X¢X£X¦X¸XèuA¬éøàüÊYÊYäYíYùYüY ZZZ#Z)Z2Z5Z6Z@ZBZLZWZbZiZmZuZvZvZ„Zê&àüëXü$ŠZŠZ Z¸ZÂZ×ZßZßZåZåZèZïZúZþZ[ [[[[[![$[$[)[8[;[M[ì2ü$í $5R[R[`[e[f[g[g[y[{[…[“[¡[¢[¢[¨[î$5ïp×"šTšT°T²TµTÁTÂTÃTÍTÏTÚTçTïTôTUUU UU*U:UEUJUJUQUQU\U\U{U‰U”U–UœUžU U¢U¢U­U¯U·U½U¿U¿UËUÕUØUÚUÚUÚUÚUÝUèUðUñUôUVðU×"ñ"AVVVV)V*V+V5V7VAVEVPVYVaVfVhVhVlV{V†VŽV–V—V—V¡Vò)"Aóè¬ÆºXºXÒXÕXæXéXìXùXþXYY#Y,Y.Y1YAYô$¬ÆõèÆàBYBYZY]YnYqYtY�Y†Y�Y¥Y«Y´Y¶Y¹YÉYö$Æà÷pÙäßfßfìfîfófüfg&g+g3gøÙäù€Ê×BTBTUT^TgTgTvT„TŠT�T—TúÊ×ûX¹ÁÚSÚSãSãSóSøSøSýSü¹ÁýØäü7g7gAgCgPg]gdgkgkgsgwgŽg g¯g·gÀgÂgÂgÊgþ"äüÿ`ÁÊTT T T(T(T:T:T?TÁÊX - > >¤>¤>¸>¼>¼>À> -H_…$¡$¡2¡A¡M¡[¡^¡g¡x¡�¡�¡•¡Ÿ¡¦¡­¡­¡½¡Ò¡Ò¡æ¡è¡è¡ü¡þ¡þ¡¢ -¢ -¢¢¢¢¢ ¢#¢œ¢0_…à·0ÇÇÙÙÞè$.=DDGWtttƒ�£¹Õö.277OQ[o……�ž¬³¿ÅÏÝäîø   * * 7 W v } � … … ’ › › ¥ ¥ « ² ¶ ¿ ¿ ¿ Û æ æ ì ð  - - - - - -# -7 -K -K -Q -^ -h -r -z -‰ -¢ -¥ -¥ -· -Á -Á -Í -Í -ß -ð ƒ·0Ðÿ�‚ ‚‚"‚)‚9‚G‚_‚g‚z‚„‚›‚ ‚§‚µ‚¼‚Ö‚Þ‚ä‚! p%ïxïxôxþxyyyy"y"y%y -% PÀç——¡«³»ÈÚäéû€&€<€R€R€e€l€l€ƒ€�€�€§€¶€¶€½€Ä€Ë€Õ€Ý€ 1Àç € ŸxŸx©xªx°x¶x½xÑxØxÚxßxèx x xx x)x:xJx[xgx�x™x›x�x %ƒ'y'y+y/y/y6y=y=yEySydylysysy…y…y”y™y¥y±y»yÍyÜyáyåyìyùyýyz z z!z(z5z6z@zJzTz[zezlzqz{z‚z‡z‘z˜z¢z¬z³z½zÁzÊzÒzÛzøzÿz { {{3{@{U{`{m{m{t{–{£{©{«{h%ƒp•ÀÏ|Ï|Ù|ã|ã|1}1}}}Í}Í}ë} ~'~M~M~‹~‹~—~™~¶~¶~ô~ô~  OV[e€‡‰Ž”5•ÀX�•o|o|y|£|«|Â|Ä|Ê|�•@ÖÛW­W­q­ƒ­�­ÖÛˆÿ ê-ê-õ-ú-û-ü-.".#.7.:.@.ÿ �ð §ö§ö«ö¯öÓöÜöëö÷ö÷"÷:÷J÷_÷_÷_÷÷�÷�÷�÷¡÷£÷£÷£÷Ã÷Å÷Å÷Ð÷Ð÷Ø÷Ø÷ä÷ø÷ø -ø -øø#ø#ø5øBøNøRøŽø9ð ¨ Q�ø�ø“ø—ø»øÄøÓøßøëø÷øùù6ùFù[ù[ù[ù~ù€ù€ù€ù£ù¥ù¥ù¥ùÈùÊùÊùÕùÕùÝùÝùéùýùúúú!ú(ú(ú:úGúSúWú“ú< Q h$K�K�[�i���Œ�Ž�Ž�–� $!@$)›�›�¯�Á�É�"$)#x3?+‚+‚=‚@‚N‚k‚o‚~‚�‚‹‚$3?%h)3Ë�Ë�á�ï�‚‚‚‚&‚&)3'°b•G<G<K<S<a<a<s<‚<Œ<˜<£<±<À<Ñ<í<õ<= =====2=>=P=d=…=™=¦=Á=Þ=à=ò=û=û= > >>">">4>4>B>B>G>K>(=b•) -w9w9…9�9Ÿ9«9¡9¸9Ã9Ã9Ô9Þ9Þ9à9 -:*-+˜•O>O>S>t>{>Š>—>£>²>Æ>Þ>ô>ô>??5?5?D?Q?Z?Z?s?s?¡?¿?È? @@-@v@H@†@™@Û@ä@ì@ù@ AA/AOAdAwA‘A¦AÀAÌAÞAãAõAB B/B;BNBNB€B‹B–B¡B»BÈBÔBàBàBåBøBCRC*CkCrCwC—C—CžCáCáCDDD^D`D`DeD€D‡D’D’D D DµDµDÆDÍDÍDâDâDóDóDöDþD,z•-¨Vh�0�0“0š0©0¹0À0æ0æ0÷011$111:1>1.Vh/Ȳèß4ß4ã4ç4ù45 55,5;5@5O5[5s5†5†5“5¦5Ä5Í5Í5Ú5å5ð5ð5ý566,6B6Z6~6‚6„6‰6Ž6—6—6©6°6°6Â6Ã6È6î60@²è1¸èï6ï6ó6û677,7@7G7W7\7k7t7ˆ7®7Ã7Ù7ó7û78 828I8I8k8v8—8²8»8É8Û8Ý8ï8û8ý8999=9=9H9O9Z9[9_9q92>è3 =nGG¥G°G²GÄGÐGØGØGêGêGêGýGH H$H9HGHLHSHWHeHwHzH}H�H•H¦HÔHÝHáHæHîHîHÿHIII I I#IWI4;=n5Ø=ÿDÿDEE*E4E=ENEfEyEyE†E™E·EÀEÀEÍEØEãEãEðEúE F2FQFXFbFpFwF¥FƒFíF»FþFGGG!G!G/G:G:GHGOGZGZGhGhGkGyG6B=7àn§WIWI[IfInI}I†IšI²IÅIÅIÒIåIJ J JJ$J/J4JQJVJVJcJmJ€J�J±JÀJôJÿJK"K-KBK`KlKuK“K»KÖKáKéKLLLL"L-L4L?LDLKL8Cn§9hh²?1?1C1S1c1r1{1‰1—1¤1¬1Â1Ï1å1ï122%2/2K2Z2Z2e2u2Š2›2·2Å2Þ2í2í233#3:3C3R3n3…3�3�3ª3·3Â3×3ð34444'424?4T4f4œ4¥4°4·4Â4Ì4Õ4Ù4:Th²;À-b:::: :.:5:E:J:Y:c:o:z:ˆ:—:·:Ñ:é:í:;;-;1;<;H;S;b;q;”;¢;±;Ë;Û;ß;ì;ì;þ;þ; <<<%<%<3<3<4<4<F<<?-b=Èß,ß,ã,ò,þ,-#-.-7-?-A-S-S-e-l-l-~--ƒ-> ?@<‡-‡-‹-“-Ê-Ù-å-ð-þ-.4.B.J.X.l.Ž.�.”.”.Ÿ.ª.¹.È.ë.ö.û. ///&/'/+/@/<A@§ÌOLOLSLcLtLƒL�LŸL©LÄLÑLãLòLMM"M'M4M?MJMUMdMsM‚M”M§M°M°M¾MÅMÅMÓMÜMB/§ÌCè<V////3/B/Q/l/l/‹/š/¨/±/Ä/Ö/0010I0T0T0i0p0p0…0†0Š0D$<VEH",ž,ž5ž;žHžJžOžF"GX¢ª÷È÷ÈÉÉ%É+ÉBÉPÉH¢ªIXª²WÉWÉuÉyɅɋɰÉJª²K£9á9á=áJáOáXá‚á‡áŒá‘á–á›á³áÔáááîáâââ#â(â-â6â;âRâRâWâ\âfâlâvâ{â„â‰âŽâ­â¶â»âÀâÅâÊâÖâØâÿâãã!ã&ãDãDãIãRã\ãhãvãvã‚ã‰ã’ãžãÀãÀãÅãÐãÑãÚãßãµäLg£MØ`x„¯„¯°¯°¯¸¯Ò¯Ü¯ß¯ä¯ì¯ÿ¯°°°+°7°G°Z°\°\°n°N"`xOPW^ò=ò=÷=>> >>PW^QÐ #ÙÀÙÀéÀêÀëÀöÀûÀÁÁÁ0ÁfÁoÁxÁyÁ|Á„ÁR! #S°¹Ìù½ù½¾¾¾"¾'¾3¾M¾T¾a¾n¾u¾~¾¾‚¾޾T¹ÌU°Ìß‘¾‘¾­¾®¾¯¾º¾¿¾˾å¾ì¾ù¾¿ ¿¿¿¿$¿VÌßW°¦¹a½a½}½~½½н�½›½µ½¼½ɽÖ½ݽæ½ç½ê½ö½X¦¹Y�îý¹¿¹¿Ù¿Ú¿Û¿æ¿ë¿÷¿ÀÀ À,À5À6ÀBÀZîý[�ý IÀIÀiÀjÀkÀvÀ{À‡À¡À¨À¯À¼ÀÅÀÆÀÒÀ\ý ]�ßî)¿)¿I¿J¿K¿V¿[¿g¿�¿ˆ¿�¿œ¿¥¿¦¿²¿^ßî_à5N!Ó!Ó7Ó@Ó\ÓpÓÓ”Ó›Ó›Ó£Ó¿Ó¿ÓÍÓñÓÔ ÔÔ0Ô0Ô>Ô`#5Na¸NbAÔAÔSÔZÔ{ÔŽÔ—Ô—Ô­Ô¹ÔÁÔÕÔÞÔäÔïÔïÔÕbNbcp -5ÒÒ+Ò-Ò7Ò:Ò@ÒLÒOÒVÒ_ÒcÒlÒlÒzÒ|Ò‡ÒŒÒ•ÒœÒ«Ò·ÒºÒ½ÒÆÒËÒáÒíÒðÒóÒóÒ÷ÒÿÒÓ -ÓÓd5 -5e8X7 7 C S c m u | † ” £ © ± · ¹ ë f*8XgX %%%%%h ipÅЧ¬§¬ǬÒ¬ä¬ܬ÷¬­­­­jÅÐkh$à>à>é>é>þ>þ> ? ? ?%?l$mpXc¬Ÿ¬Ÿ±Ÿ»ŸÉŸÕŸÙŸÝŸÝŸïŸnXcoX< -D -ººÊÜâèîp< -D -qXS -[ -z z Š œ £ © ¯ µ rS -[ -sX[ -c -º º Ê Ü ã é ï õ t[ -c -u@TY111.101vTYwXYao¸o¸x¸x¸„¸Џ�¸”¸xYayHSY?¸?¸H¸Y¸h¸h¸m¸zSY{€ääää ä4ä>äCäOäUäWäWä\ä|}è|–·ñ·ñÁñËñÒñßñãñôñþñþñòò!ò+òVò;ò+òtò~òƒòó~$|–€/<çäçäöäüäåå#å+å0å6å8å8å>å€/<�pŠ•ÿçÿçè è!è6è>èAèCèG肊•ƒ@ÈÍ""#"+"0"„ÈÍ…@ ¬�¬�µ�Á�Æ�† ‡H<BìžìžõžüžŸŸˆ<B‰HBH Ÿ ŸŸŸ"Ÿ'ŸŠBH‹€ÉÖ//9@EPR[mss˜ŒÉÖ�h(2|ž|ž…žŠž”ž™žŸž¦ž¦ž²žŽ(2�àsŒGMGMKM_M€M¢M¯MÓMåM NN&NSN\N^NhN€N­N¶N¶NÂNÂN8O�#sŒ‘è¯É÷÷""9DIRWWq†ˆˆ¢··¾¾(’$¯É“X ì’ì’ú’“““$“” •¸´È‚!‚!’!™!©!³!Â!Â!Ñ!Ó!Ó!â!ð!""" -" " ""–´È—øÍé2"2"B"H"R"Y"m"w"†"†"•"—"—"«"´"Â"É"É"Ì"Ö"ì"ô"ö"ù"û"û"#˜&Íé™�êùñÙñÙÚÚÚ3ÚHÚNÚTÚTÚ\Ú^Ú†Úšêù›h2<´ž´ž½žÂžÌžÑž×žÞžÞžëžœ2<�H’øW‘W‘y‘Œ‘–‘–‘™‘�‘±‘¶‘ȑґԑؑä‘ä‘ó‘ø‘ü‘’!’1’1’B’E’G’R’R’c’f’i’k’q’†’‰’“’˜’©’±’±’´’À’ë’ð’“ -“ ““$“9“N“N“a“j“m“ˆ“‘“¦“«“À“Õ“ê“í“ï“ú“ú“”””””6”9”C”J”J”\”žp’øŸx4`WŽWŽqŽqŽtŽxŽŒŽ‘Ž¤Ž®Ž°Ž´ŽÀŽÀŽÏŽÔŽØŽôŽùŽ � ��� �*�*�:�=�@�B�H�]�`�j�x� 64`¡¨`’��¥�­�­�°�¼�ç�ì�ý��� � �5�J�J�]�f�i�„���¢�§�¼�Ñ�æ�é�ë�ö�ö� ‘‘‘‘‘2‘5‘?‘Q‘¢<`’£°4?�?�[�e�e�h�l�|���’�œ�ž�¢�®�®�½�Â�Æ�á�æ�ö�ö�Ž -Ž ŽŽ"Ž%Ž(Ž*Ž9Ž<ŽFŽFŽVޤ=4¥pHS·bÃbÆbÈbÍbÐbÓbØbàb¦HS§x<HObObcbrbyb~b‰bžb¡b¦b²b¨<H©x0<bbb"b%b%b8b>bAbCbMbª0<«�g–÷©÷©ª ª+ª<ªRªYªcªgªoª~ª‚ª†ªŽª–ªžªŸª©ª©ª¸ªÁªªÚªÛªåªïªöª««««««%«+«C«L«M«R«m«p«‚«¬9g–­pS^çbóböbøbýbc ccc®S^¯X’š7È7ÈSÈWÈ]ȇȋȗȰ’š±Xš¢—ȗȳȷȽÈáÈåÈñÈ²š¢³ 7ïìïìóì÷ìí íí,í8íAííŽíší¡í¿íÊíÔíùí î2î<îPîWîrîrîrî„î‹î‹î�î£î§î´+7µøv’ Ç Ç;ÇKÇVÇ[Ç]ÇcÇuǔǤǵÇÅÇÇÇÇÇÇÇÍÇæÇÈ È!È!È*È*È6ȶ&v’·@âç/ö/öIöZödö¸âç¹H¼âgôgôkôtô„ô“ôŸô¸ô¸ô¸ôåô -õõõ:õBõJõ\õ‰õ•õ¨õ°õµõÉõËõËõÖõÖõÖõèõïõïõöö*öº0¼â»h¤®ðAðAôA"B@BRBcBmB¼¤®½`Öß@D@DDDrD D²DÃDÍD¾Öß¿H´º°B°B´BßBíBïBÀ´ºÁHÀÆ0C0C4C_ClCnCÂÀÆÃXÎÖØCØCÜC -D8DDÄÎÖÅH®´pBpBtBŸB­B¯BÆ®´ÇHºÀðBðBôB C+C-CȺÀÉXÆÎpCpCtC¢CÐCÔCÖCÊÆÎËH‚ˆ�@�@”@¿@Ç@É@Ì‚ˆÍHŽ”AA A7A>A@AÎŽ”ÏXœ¤˜A˜AœAÊAèAìAîAМ¤ÑH|‚P@P@T@@‡@‰@Ò|‚ÓHˆŽÐ@Ð@Ô@ÿ@AAÔˆŽÕX”œ@A@ADArA�A”A–AÖ”œ×8ßãÐDÐDÙDëDØßãÙ`7@ê/ô/ô/þ/E0J0Ú7@Û`jjzŽœ£­µ¿Çáææî   9>>ELLbkry€Œ“©¹»Òô -bH‡¾ÌÖíó÷üZ>�´çõÿ%8AXfwz�›«Üi`Ý�”£éàéàîàóàôàôàááááá!á1á6á9áÞ”£ß@/4€?€?Ž?¢?¨?à/4áØ *ý*ý>ýLýRýâ" ãxBN´®´®Ä®Ç®Ï®Ø®ã®ò®ú®¯äBNåˆ: ’ؒؤئئؾØÇØÊØÕØ×ØêØôØÿØÙ Ù*Ù8Ù<Ù@ÙFÙTÙXÙ\ÙbÙdÙxْ٢٦٦ٻÙÌÙÏÙÝÙáÙõÙÚ Ú#Ú#Ú8ÚIÚMÚSÚSÚWÚ[Ú_ÚcÚcÚ}Ú}Ú�Ú…Ú‡Ú‡Ú‹Ú�Ú‘Ú‘Ú•Ú™Ú›Ú›ÚŸÚ£Ú¥Ú¥Ú©Ú«Ú«Ú­Ú­Ú¯Ú¯Ú·Ú¿ÚÉÚÎÚÒÚÖÚäÚèÚìÚñÚõÚÛÛÛÛ1Û3ÛAÛEÛIÛOÛcÛƒÛ—Û—Û—Û—Û—Û›ÛžÛÀÛÀÛÀÛÕÛíÛ ÜÜÜÜ&ÜCÜbÜgÜgÜgÜ|Ü›ÜºÜÆÜËÜËÜËÜàÜÝ#Ý/Ý4Ý4Ý4ÝIÝfÝ…Ý‘Ý–Ý–ÝšÝ¯ÝØÝÜÝûÝÞÞÞÞBÞFÞeÞjÞjÞjÞÞ—ÞžÞ¾ÞÃÞÃÞÃÞØÞðÞ÷Þßß9ß@ßbßgßgßgß|ß�ß¼ßÈßÍßÍßÍßâßà"à.à3à3à3àHàHànà�à°àµàµàµàÊàâàìàðàáááá'á,á7áAáAáwá…áŠá�á£á¬á¬á¬á¹á¾á¾áÅáÕáÞáÞáæáñáñáâ0â?âHâSâWâcâmâmâ{â}âˆâ–â˜â®â®â³â³âéâúâãããããã ã8ãAãAãIãTãTãjãyã‡ã‰ã˜ã¦ã¨ã¾ã¾ã¾ãÍãäãæãæãæãÿãääää5äMäaäeä{ä{ä’ä’ä’ä£ä«ä±ä±ä¼äÔäÝäÝäéäøäååå*å;å=å=å=å=åIåaåpåpå‹åœå§åÈåÍåÕåðåóåææ)æ6æ6æQæ\æeæ�æšæ­æ³æÁæÁæÎæÒæåæ ç.ç.ç.çJçWç[çnç¦ç¦ç¨ç¨çÄçÏçÕçÕçâçæçùç4èIèRèeèkèxè}è}èŠèŽè¡èÜèñèúèÿèÿè ééé*éBéVéZépéŒéŒéŒéºéÇéÇéäéäéèéûéêêêê&ê&ê,ê_êwêwê•ê¨êÀêÐêöê -ëë(ë,ëIë[ëgëkëpëpëpëtëyëyë‡ë‹ë‹ë¤ë¼ëÐëÔëêëìì4ìAìcìhìhìhìvìzìzì“ì«ì¯ìÃìÇìÝìÝìùìíí:íGídíiíiíÁíÎíÎíüíîî îî#î+î9îDîOîSî\î\î‚î�î�î«îÀîÈîÍîÍîçîøîøî ïYïiïiï™ïžïÌïÑïíïøïððð:ðFðFðoð‡ðŠðŠð¥ð¥ð¥ðªð°ðãðûðûðñ,ñ5ñMñvñŽñ‘ñ‘ñ¬ñ¬ñ¬ñ¬ñ·ñÕñèñòñò(ò<òVòcògòkòˆò¢ò¯ò³ò·ò¼ò¼ò¼òÀòÅòÅòÅòÞòöòó ó ó'óCóFóXómóvó‰ó�óœó¡ó¡ó¡ó½óÙóÜóîóô ô ô ô%ô=ôHôRôRônôŠô�ôŸô´ô½ôÐôÖôãôèôèôèôõ õ#õ5õNõSõSõSõSõlõ„õ�õ™õ™õ¾õÏõäõíõöööööö9öJöcöhöhöhöhö�ö™ö¤ö®ö®öÓöåöúö÷÷÷%÷*÷*÷*÷O÷a÷z÷÷÷Š÷Š÷œ÷œ÷¬÷³÷%ýæØ:  -        - - - -çxbŽÕÕ-Õ0Õ9ÕMÕnÕtÕvÕŠÕŠÕ˜Õ¡Õ¥Õ¥Õ®Õ¼ÕÁÕÕÕÕÕúÕÖÖÖÖ@ÖXÖXÖXÖZÖZÖZÖtÖ‰Ö‰ÖÑÖè6bŽé¨N`¯¯ ¯"¯'¯*¯3¯>¯Q¯f¯j¯m¯m¯s¯v¯„¯êN`ëh‡‘·k·kÍkßkßkékl l쇑íÐö t¤t¤†¤ˆ¤—¤—¤«¤­¤¶¤¸¤¸¤»¤×¤¥$¥.¥>¥H¥S¥V¥d¥î!ö ïpp{O‰O‰S‰t‰x‰‹‰”‰˜‰š‰ðp{ñÀ†›¿^¿^É^Ö^Ö^á^á^õ^þ^þ^___(_(_,_,_6_;_;_A_ò †›ó°ó&÷c÷cýcdddd6d6dOdcdnd˜džd£d½dÔdëdee0eGe^eueŒe£eºeÑeèeÿef-fDf[frf‰f f·fÎfâföf -gg2gDgDgSgÚnô=ó&õ˜{‹Ÿ‰Ÿ‰´‰ĉ܉è‰ô‰ô‰Š Š ŠŠ$Š&Š&Š.Šö{‹÷€,YG‡G‡c‡q‡v‡€‡€‡†‡’‡“‡–‡–‡�‡�‡¤‡²‡µ‡¹‡¹‡ŇŇчׇä‡ù‡û‡û‡û‡þ‡ˆˆˆˆˆ=ˆ@ˆUˆUˆXˆ[ˆkˆø7,Yù0‘´D©D©^©a©y©y©{©{©�©š©¦©«©Ã©Æ©Æ©Ñ©Õ©Õ©Õ©Õ©á©õ©ø©ø©ªªªªªª!ªú-‘´ûHÐÖ­­7­D­J­V­üÐÖý0Û�­�­“­¡­´­´­µ­Ä­Æ­×­â­ð­û­®® ®1®>®C®R®Z®‡®¥®¬®¹®Ï®Ý®Þ®í®ï®¯!¯&¯4¯B¯M¯[¯f¯t¯y¯y¯†¯�¯”¯™¯§¯´¯½¯¯¯ϯدݯݯݯâ¯â¯ï¯ô¯ø¯ü¯þMÛÿˆ ÷›÷›û›œœ œœMœTœcœrœwœyœyœ  o€'³'³;³N³V³{³ˆ³›³§³¸³À³Ƴʳܳo€h’œ§¡§¡«¡º¡¿¡Û¡ð¡õ¡¢’œØÿüÿü ýýýýýý*ý>ýUý`ýcýeýhýjýjývývý¦ý"pôÿr#r#Ž#¥#«#¼#Ò#ñ#$$$ôÿ Àáëë.ë8ëAëWëWëZëaëaëtë{ëˆë›ë¤ë°ë³ë¸ëÔëæëæëøëúëúë ììììì*ì=ìCìFìFìIìNìUìfìmìsì…ìˆì¤ì¤ì©ì©ìëì -?á - - - - - - Jg×V×VÿVW$W+WRFRNRNRTRˆSa]]]"].]:]F]T]`]g]l]y]z]~]Sa@Z.d.‘.–.8DHr0|0¡0¦0DHpÆÑJ+J+S+S+]+€+€+…+ÆÑ p»Æò*ò*ü*+!+&+A+G+ »Æ!ˆ‡R‡RŒR RÅRðR%SUStSŽS˜S›S"#8ÑõŠ+Š+“+±+À+Þ+é+ù+,,E,g,g,l,},ˆ,»,Ð,Ö,Ü,ã,ð, - - -,-E-N-N-c-$.Ñõ%H"(TžTž]žcžpžržwž&"('�¥Ô,¢,¢D¢J¢J¢T¢W¢W¢d¢o¢y¢ƒ¢ƒ¢�¢‘¢—¢ž¢¡¢¤¢°¢¼¢Â¢Ç¢Í¢Ð¢Ò¢Ý¢ã¢é¢ò¢ò¢ú¢£ ££££££"£%£5£(9¥Ô)Pâ šš§š¿šÆšÒšÞšåšóšóš››-›7›?›F›N›X›`›t›…›¡›½›¾›¿›Æ›Ì›Ô›Õ›Ø›õ›*1â +€œ©¢¢)¢F¢L¢Q¢d¢q¢w¢z¢‚¢,œ©-ˆÜêqÙqىٕٚ٭ÙÇÙØÙØÙÚÙïÙ.Üê/PµÜ1Ø1ØGØJØbØn؃آتشؽØߨåØåØñØùØÙÙ ÙÙÙÙÙÙÙÙÙÙ,Ù<ÙLÙRÙTÙTÙjÙ01µÜ1P޵ÑÖÑÖçÖïÖ××#×3×7×A×N×p×v×vׂ׊הילררר׫׿×Î×Ý×ïר ØØØØØ*Ø21޵3˜c“º4º4Î4Ø4æ4ì4ö4÷4ø45 5 5555 5*565?5[5\5p5�5}5¢5¢5Ö5Ø5å5å5ì566666-6H6T6a6š64:c“5¸Øìäªäªúª3«?«W«l«x«~«€«ƒ«�«’« «6Øì7h_iħħԧð§ò§ý§ÿ§ÿ§¨8_i9˜iy ¨ ¨&¨,¨1¨M¨S¨Y¨w¨y¨†¨Œ¨�¨�¨:iy;`y‚¤¨¤¨¶¨¸¨Â¨Ð¨Ù¨Þ¨è¨<y‚=�‚‘ì¨ì¨©©©"©&©(©(©4©7©:©D©>‚‘?�ô·`·`É`Î`ç`ò`a aaaa%a@ôAh›¥ì¡ì¡ü¡þ¡¢¢¢¢!¢)¢B›¥C Md¥d¥x¥~¥~¥˜¥›¥¬¥»¥Â¥É¥Ï¥í¥ò¥ú¥ú¥ü¥ ¦¦¦¦¦¦¦!¦'¦C¦S¦_¦a¦n¦n¦s¦s¦s¦˜¦ž¦ ¦°¦´¦Ã¦É¦Ì¦Î¦Þ¦â¦ñ¦÷¦ú¦ü¦ §§#§&§)§+§;§>§J§DJ MEˆ6D/–/–@–N–O–P–V–…–‰–Š–�–•–F6DG@¯´ŠSŠS“S S¯SH¯´I@´¹²S²S»SÈSÙSJ´¹KH$*J/T/y/~/L$*MPˆ¯š@š@«@µ@Ã@Ù@æ@û@û@A A:A?ALAWA^AoAoA€A‚A‘AžA«A°AµAÅAËAËAÒAíABBBN1ˆ¯OXz‚2@2@6@@@J@\@\@h@Pz‚QÀ…šœ¢­¢º¢¿¢Ô¢Ô¢î¢ð¢ð¢ -£ £ ££££"£"£(£(£{£R …šS@.3š/¤/É/Î/T.3Uð”¯&-??LNN]__lnnx€€‰““¯¯³öV%”¯W@ -O Û ÛÛÛ+Û<ÛTÛaÛrÛ€Û˜ÛŸÛŸÛ²ÛÄÛÌÛàÛïÛ Ü Ü'Ü0Ü=ÜHÜXÜp܈ܙܙܬܿÜÊÜÊÜÝÜèÜýÜÝ&ÝHݘݫݽÝòÝôÝüÝÞ*Þ/Þ?ÞOÞTÞ`ÞœÞXO -OY@Ot¡Þ¡Þ¥Þ¥Þ¶ÞÖÞÝÞëÞöÞßßßß+ß=ßFßOß{ߟߡߨ߳߾ßÉßÔßÿßÿßàZ/Ot[Psz@@@@)@-@\sz]X08÷ ÷ û  ! 2 7 ^08_pƒŽ»„»„Ë„è„ð„ÿ„………`ƒŽa�´Ã§P§P«P»PÑPÓPáPèPíPòPùPQQQb´Ãc°>Qj&j&p&q&r&r&Š&Œ&’&°&´&Â&Â&Ö&ß&à&ã&ç&d>Qe�HW—K—K›K¯K¼KËKÚKïKLLLL>LCLGLfHWg€WdGLGLKLYLZL[LmLnLwLyLhWdi@RWò¬ò¬­#­)­jRWkXW*­*­8­G­M­d­w­Ž­¡­¸­Ë­â­ù­®®(®,®2®9®=®O®h®v®}®}®•®™®Ÿ®¦®ª®¼®Õ®ã®ê®í®÷®l2Wm(Ôö<£<£R£q£}£�£–£§£¯£´£À£Ñ£ê£ð£ó£ö£ù£þ£¤¤¤$¤?¤E¤H¤K¤N¤N¤X¤[¤m¤n,ÔöoFcú3ú34#434?4E4N4U4\4a4m4q4q4{4{4‚4…4‹4‹4•4£4ª4ª4ª4¸4p'Fcq˜'œœŽœœœ�œžœ©œ«œ³œ³œМßœèœñœòœøœr'sHË1·£·£Å£Σ×£à£ì£ø£¤ ¤¤¤%¤0¤8¤D¤W¤l¤z¤†¤”¤®¤®¤®¤³¤¸¤ƤͤÒ¤Ò¤Û¤â¤ç¤ó¤þ¤¥¥¥¥ ¥#¥(¥+¥4¥;¥>¥@¥J¥M¥R¥U¥^¥e¥h¥j¥o¥y¥y¥‚¥‰¥•¥ ¥ ¥¼¥¼¥¼¥Ä¥Ä¥Ë¥Ò¥Ù¥à¥à¥ç¥î¥õ¥ü¥ü¥¦ ¦¦¦/¦<¦D¦G¦S¦tpË1u`¡£‡£�£™£™£¬£²£·£vÂËwè1KW¦W¦]¦o¦o¦v¦|¦¦„¦•¦™¦x$1KyH‰�WdWd`dfdldqdz‰�{�z‰÷c÷c d ddd d$d+d3dCdFdPd|z‰}0ŸâW˜W˜g˜v˜v˜�˜�˜�˜�˜�˜�˜�˜±˜¼˜͘ç˜ç˜ç˜™™™™$™2™@™N™\™j™€™©™¸™º™Á™Ø™ì™ì™ì™ñ™ø™š š šš)š4š;šBšRšZšbšršuš}š~MŸâ€'4ÿœÿœ���"�1�>�K�Y�e�‘�˜�€'4�à©Â‡¢‡¢š¢¨¢¼¢Ë¢÷¢÷¢£££.£.£5£A£G£N£V£]£_£y£ƒ£‚#©Âƒˆx†¡H¡H±H²H³HÁHÈHÖHÝHäHëHìHôH„x†…x“Ÿ9I9IEIFIGIUI\IjIqIxI�I†“Ÿ‡€†“ùHùHIIIIII#I*I+I3Iˆ†“‰Ð7N"<"<0<B<N<Z<f<o<x<�<Š<“<œ<¥<®<·<À<É<Ò<Û<Û<Ý<c=Š!7N‹H6'§'§=§M§^§t§{§…§‰§‘§™§¤§¬§­§®§¹§»§ȧɧÒ§اܧܧå§ë§¨ ¨¨ ¨$¨$¨%¨(¨2¨Œ06��Ÿ¦Ÿ¦©¦½¦˦Ö¦ߦé¦ô¦§§§§$§Ž�pMX×–×–Û–ñ–ü– —%—)—-—�MX‘@QVê&ê&î&''’QV“` • •(•:•O•S•W•W•\•”•¸±Å7¬7¬C¬Q¬]¬^¬_¬_¬f¬p¬{¬•¬—¬œ¬Ÿ¬Ÿ¬§¬–±Å—HNT<�<�J�U�[�˜NT™8ÑÕœ’œ’°’Û’šÑÕ› 6g7¨7¨W¨k¨|¨�¨£¨½¨ĨΨÒ¨Ú¨Þ¨é¨ñ¨ò¨ò¨©©"©#©1©8©?©P©Y©Z©e©g©t©}©ƒ©…©‡©�©–©®©·©¸©Ò©Õ©ò©œ;6g�pÃÎQQQ(Q5Q5Qdisplay_flags,DISPLAYf_SHOW); WinZBufUpdate; if (!IsSysDeterministic) @@ -29,11 +29,11 @@ U0 StartUpTasks() WinToTop(task1); WinTileVert; if (!IsSysDeterministic) - PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + PopUp("#include \"::/TempleOS/Adam/Start\";"); AdamLog("Boot Time:%7.3fs\n",tS); - XTalk(task1,"#include \"DoItOnce.CPP.Z\";\n"); + XTalk(task1,"#include \"DoItOnce\";\n"); Silent(ON); //no output to screen - WSInit("/SparrowOS/" TEXT_FILE_MASK ";~*Bible.TXT.Z"); + WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*"); Silent(OFF); //no output to screen } diff --git a/SparrowOS/Accts/DoItOnce.CPP b/TempleOS/Accts/DoItOnce.CPP similarity index 64% rename from SparrowOS/Accts/DoItOnce.CPP rename to TempleOS/Accts/DoItOnce.CPP index 8b37b26..c250de3 100644 --- a/SparrowOS/Accts/DoItOnce.CPP +++ b/TempleOS/Accts/DoItOnce.CPP @@ -1,16 +1,16 @@ //This file is executed by the //first terminal window upon start-up. -//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,DoItOnce"$. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP,DoItOnce"$. //It goes in your HOME directory and //you can customize it. //Delete this to get rid of //default start-up msg. -Type("::/SparrowOS/Doc/Customize.TXT.Z"); +Type("::/TempleOS/Doc/Customize.TXT"); "\nTake Tour"; if (YorN) { - Cd("/SparrowOS/Misc/Tour"); + Cd("/TempleOS/Misc/Tour"); AutoFile("Tour"); } diff --git a/SparrowOS/Accts/Install/Adam3fSys.CPP b/TempleOS/Accts/Install/Adam3fSys.CPP similarity index 89% rename from SparrowOS/Accts/Install/Adam3fSys.CPP rename to TempleOS/Accts/Install/Adam3fSys.CPP index b6bb32d..5262f38 100644 --- a/SparrowOS/Accts/Install/Adam3fSys.CPP +++ b/TempleOS/Accts/Install/Adam3fSys.CPP @@ -5,7 +5,7 @@ U0 UserStartUp() { //Run each time a user a spawned UseTermDoc; DocCurAttr(WHITE<<4+BLUE); - Type("::/SparrowOS/Doc/Start.TXT.Z"); + Type("::/TempleOS/Doc/Start.TXT"); LBts(&Fs->display_flags,DISPLAYf_SHOW); WinZBufUpdate; if (!IsSysDeterministic) @@ -29,7 +29,7 @@ U0 StartUpTasks() WinToTop(task1); WinTileVert; AdamLog("Boot Time:%7.3fs\n",tS); - XTalk(task1,"#include \"DoItOnce.CPP.Z\";\n"); + XTalk(task1,"#include \"DoItOnce\";\n"); Silent(ON); //no output to screen WSInit; Silent(OFF); //no output to screen diff --git a/SparrowOS/Accts/Install/DoItOnce.CPP b/TempleOS/Accts/Install/DoItOnce.CPP similarity index 64% rename from SparrowOS/Accts/Install/DoItOnce.CPP rename to TempleOS/Accts/Install/DoItOnce.CPP index a3d2142..3995199 100644 --- a/SparrowOS/Accts/Install/DoItOnce.CPP +++ b/TempleOS/Accts/Install/DoItOnce.CPP @@ -1,29 +1,3 @@ -U0 VMDrvs(CATARep *root,CATARep **_ata_drv,CATARep **_atapi_drv) -{ - CBlkDev *bd=Drv2BlkDev(dft_drv); - CATARep *tempha=root,*ata_drv=NULL,*atapi_drv=NULL; - Bool found_atapi=FALSE; - while (tempha) { - 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 (!found_atapi) { - if (bd && tempha->base0==bd->base0 && tempha->unit==bd->unit) { - atapi_drv=tempha; - found_atapi=TRUE; - } else if (!atapi_drv || tempha->unitunit || - tempha->unit==atapi_drv->unit && tempha->numnum) - atapi_drv=tempha; - } - } - tempha=tempha->next; - } - if (_ata_drv) *_ata_drv =ata_drv; - if (_atapi_drv) *_atapi_drv=atapi_drv; -} - Bool VMPrtDsk(CTask *task,CATARep *ata_drv) { if (ata_drv) { @@ -45,12 +19,13 @@ U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,U8 *acct_name, Free(st1); Free(st2); - st1=MSPrintF("%C:/SparrowOS/Accts/%s",drv,acct_name); + st1=MSPrintF("%C:/TempleOS/Accts/%s",drv,acct_name); MkDir(st1); + Copy("::/TempleOS/Demo/MakeDistro.CPP.Z",st1); Free(st1); XTalkWait(task, - "InstallBoot('%C');\n" + "MakeOSInstallPrtBootLoader('%C');\n" "B10x20000\n",drv); if (ata_drv) @@ -66,10 +41,11 @@ U0 VMInstallBoot(CTask *task,U8 cd_drv,U8 drv,U8 *acct_name, acct_name); } -U0 VMInstallWizard(CTask *task) +U0 VMInstallWizard() { U8 *acct_name; CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL; + CTask *task; while (TRUE) { "Make-up a Log-In Name (account).\n"; acct_name=PmtStr("User Acct Name (%s): ","User"); @@ -78,33 +54,34 @@ U0 VMInstallWizard(CTask *task) Free(acct_name); } task=SpawnUser; - task->win_top=Fs->win_top; - task->win_bottom=(Fs->win_top+Fs->win_bottom)>>2-1; - Fs-> win_top=task->win_bottom+3; - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - TaskDerivedValsUpdate(task); - TaskDerivedValsUpdate; + TaskWait(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task); + SetWinVert(task->win_bottom+3,Fs->win_bottom); WinToTop(Fs); - ATARep(FALSE,&root); - VMDrvs(root,&ata_drv,&atapi_drv); + ATARep(FALSE,TRUE,&root); + ATAIDDrvs(root,dft_drv,&ata_drv,&atapi_drv); if (VMPrtDsk(task,ata_drv)) { VMInstallBoot(task,dft_drv,'C',acct_name,ata_drv,atapi_drv); VMInstallBoot(task,dft_drv,'D',acct_name,ata_drv,atapi_drv); - InstallMasterBoot('C'); + InstallMasterBootLoader('C'); } - LinkedListDel(root); + LinkedLstDel(root); Free(acct_name); + + SetWinVert(task->win_top,Fs->win_bottom); + Kill(task); } -U0 RegularInstallWizard(CTask *task) +U0 RegularInstallWizard() { I64 unit; U8 ch,*base0,*base1,*ms,*dst,*acct_name; U8 *st1,*st2,*new_home_str; CATARep *root=NULL,*tempha; I64 num_hints; + CTask *task; while (TRUE) { "Make-up a Log-In Name (account).\n"; @@ -114,19 +91,16 @@ U0 RegularInstallWizard(CTask *task) Free(acct_name); } task=SpawnUser; - task->win_top=Fs->win_top; - task->win_bottom=(Fs->win_top+Fs->win_bottom)>>2-1; - Fs-> win_top=task->win_bottom+3; - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - TaskDerivedValsUpdate(task); - TaskDerivedValsUpdate; + TaskWait(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task); + SetWinVert(task->win_bottom+3,Fs->win_bottom); WinToTop(Fs); XTalk(task,"Mount;\n"); XTalk(task,"C"); XTalk(task,"2 "); - num_hints=ATARep(FALSE,&root); + num_hints=ATARep(FALSE,,&root); "\nInclude '$$FG,PURPLE$$0x$$FG$$' for hexidecimal numbers.\n\n"; while (TRUE) { base0=PmtStr("Hard Drive I/O Port Base0 : "); @@ -141,7 +115,6 @@ U0 RegularInstallWizard(CTask *task) base1=MSPrintF("0x%X",tempha->base1); ms =MSPrintF("0x%X",tempha->unit); unit=A2I(ms); - Free(ms); } else { while (TRUE) { base1=PmtStr("Hard Drive I/O Port Base1 : "); @@ -152,12 +125,11 @@ U0 RegularInstallWizard(CTask *task) while (TRUE) { ms =PmtStr("Unit--$$FG,PURPLE$$0$$FG$$=Master or $$FG,PURPLE$$1$$FG$$=Slave: ","0"); unit=A2I(ms); - Free(ms); if (0<=unit<=1) break; } } - LinkedListDel(root); + LinkedLstDel(root); XTalk(task,"%s\n",base0); XTalk(task,"%s\n",base1); XTalk(task,"%C",'0'+unit); @@ -171,15 +143,15 @@ U0 RegularInstallWizard(CTask *task) } NewLine; - st1=MSPrintF("%C:/SparrowOS",dft_drv); - st2=MSPrintF("%C:/SparrowOS",*dst); + st1=MSPrintF("%C:/TempleOS",dft_drv); + st2=MSPrintF("%C:/TempleOS",*dst); "$$FG,RED$$Format %C Partition?$$FG$$\n",*dst; if (YorN) { NewLine; while (TRUE) { "$$FG,PURPLE$$1$$FG$$) Use FAT32\n" - "$$FG,PURPLE$$2$$FG$$) Use SparrowOS Native\n" + "$$FG,PURPLE$$2$$FG$$) Use TempleOS Native\n" "\nFile System Type: "; ch=GetChar; NewLine; @@ -192,7 +164,7 @@ U0 RegularInstallWizard(CTask *task) Fmt(*dst,TRUE,FALSE,PT_NATIVE); } else { "\n$$BK,1$$WARNING$$BK,0$$ if you answer yes to the following " - "you will lose all SparrowOS files in your /SparrowOS directory tree.\n" + "you will lose all TempleOS files in your /TempleOS directory tree.\n" "Delete %s Directory ",st2; if (YorN) DelTree(st2); @@ -206,10 +178,11 @@ U0 RegularInstallWizard(CTask *task) MkDir(st2); Free(st2); - new_home_str=MSPrintF("%C:/SparrowOS/Accts/%s",*dst,acct_name); + new_home_str=MSPrintF("%C:/TempleOS/Accts/%s",*dst,acct_name); MkDir(new_home_str); + Copy("::/TempleOS/Demo/MakeDistro.CPP.Z",new_home_str); XTalkWait(task, - "InstallBoot('%C');\n" + "MakeOSInstallPrtBootLoader('%C');\n" "B10x20000\n" "C" "2p" @@ -224,7 +197,7 @@ U0 RegularInstallWizard(CTask *task) "$$FG,RED$$Install Master Boot loader?$$FG$$"; if (YorN) { NewLine; - InstallMasterBoot(*dst); + InstallMasterBootLoader(*dst); } Free(new_home_str); Free(acct_name); @@ -232,33 +205,37 @@ U0 RegularInstallWizard(CTask *task) Free(base1); Free(ms); Free(dst); + + SetWinVert(task->win_top,Fs->win_bottom); + Kill(task); } U0 DoInstall() { + I64 pmt_reboot; CTask *task=Fs->next_task; while (task->user_num!=2 && task!=Fs) task=task->next_task; - XTalk(task,"Ed(\"::/SparrowOS/Doc/Install.TXT.Z\");\n"); + if (task->user_num==2) + XTalk(task,"Ed(\"::/TempleOS/Doc/Install.TXT.Z\");\n"); NewLine(5); "Install on virtual machine "; - if (YorN) - VMInstallWizard(task); + if (pmt_reboot=YorN) + VMInstallWizard(); else { - "\n\nThis wizard works if you have a partition ready. " - "You can partition the drive or compile the kernel " + "\n\nThis wizard works if you have a partition ready. " + "You can partition the drive or MakeOSInstallPrtBootLoader() " "with more options if you do it by hand, not using this wizard.\n\n" "Continue Install Wizard "; + if (pmt_reboot=YorN) + RegularInstallWizard(); + } + if (pmt_reboot) { + "Reboot Now "; if (YorN) - RegularInstallWizard(task); + Reboot; } - Fs->win_top=task->win_top; - Kill(task); - - "Reboot Now "; - if (YorN) - Reboot; } DoInstall; diff --git a/SparrowOS/Accts/PersonalMenu.TXT b/TempleOS/Accts/PersonalMenu.TXT similarity index 89% rename from SparrowOS/Accts/PersonalMenu.TXT rename to TempleOS/Accts/PersonalMenu.TXT index 6a43e1a36bd47ac4701ed9bce4f9712a0a9dc0a2..ae6fc47f14c1f7c10a9725a1799b0ff4b243c0fa 100644 GIT binary patch delta 2055 zcmcaTh57XYW?Pl;a2-RHfSknSRE3g^%wmPK%$!t(%shq4{L&%?4}V`*g_O*q)Z~)< zqDqC#G?1`DZhlH;TBSl}$wco6wvg1^f}GTes}y0ZOWIJ@WEMs(L5Q?}u)a%bZoYnS zUdqIcQZV^MMpYQokw*kc;t-=YnnuUsTqJn~CIy&AcP1@fxE+oK1;t3p7BK0{M&_3) zBq!!6q*f&6X6B_T{Q2`9EI}Ck_-hE zA8#EckcfY2E)`!#9VO=!jTj{> zD}A_Qy;FzbvlvF0}SQ-|EtqgQyA_PNgWUzjWahAkF+Dld zVax?g@{^}=sKL00IUHb2E>3qTROfi7rWQDsCsu-8RK%%;ChcD2o1c=J199+PPD7YM zAXf$@mV0ETq)ry+f@dK|9#K~3jMU=d$(dXxNNOkVMCEdF8zaj`aPv*h;nqPG+QMyt z%;n%QLU27{%!xeCFs37q=;RMP)-tHRb4)8qEpkn-EGPl{&yN>wMLUrU_$8KAPIlsh$ABY`sGn1QZW1VsE9n@SsVJxf2Wb2FLJ~(wQE7>ij*@a_UUE)p zN~!{C<^jiiFh~u^9WhEuI!5Ly3X^B^smQ?{3`&Oj?nQ|O8JWq&`pyBN0Xg|4lb`T~ z!5zgP4r9*e*Wm;wGhHJUuFaSDS2J#2Ah>&n5)%UhgERvKFtIZ*FfuSOi0UvfFsL#x zFx>k8|NpJYeGMj)7c?kg;19AqjQo=)HW*^az*K*b6#%QyXJO~yV4pm(K?jM!&JGdb zW?L&+w3d=%l;)WT{zyM=`=*fYdBGMog zAb&ue12PpP#K6tXFgdVORGI{CY5#0b)AHa2N|h zL%aeZ`5D;RA?AQcunAyAU>2BwsDqL0>>L~%P!2apFPO~@H3VW8LmXHTLV(nBu!F*f zo12}TgMkAa;4lU#M8E{N{X|CTmgzb7y~55!48s> Z0GkSygRnpmzyV27xDy{J5q^;61^|~+1E2r^ delta 1524 zcmaF8fcf?mW^a}7a2-Px&oqU~{8EM7{FKbJN`;b)%wmPK%$!smuxN2cerZmMLP1Vq za;idRi9%*xNj^xTNWsJ3*Hs}UvnVyWB)_O~qHP3wa6w{GQGWTv*@|%HA#FJGvz8E4 zfq$^ROKNVuesEsO7tO}@vd%8O)Felm(F`b=7I zQ{tK6PMO@sq^}bK@?1t@u|jU8LSk}q3D~2>3gsD@$r&JDDI_Q6DWp~;=4R%lPQJtx z3^z!dS*boGNJlBSvbZEQS0T74S;09!B~?jgN69m`*bSKcfLU54vseLYbx~?=VrE`SYLP;I8rUtliFqlBpm?7Ak6D~ek1Hf2 zwQ{m3iyl0HJXz%GJzaEkK|$f`sO_j75UQgTSeluftq_!&1o1b>`x-Gy`Vgn;IeGf& zIfEPwaw<5O!c%jS^K(;`bd=mYtx$aDlAo*(mDLN02+@mDQh|i5M`})if@fYzYK2lP zc5NUPUKO`|PyI4P{G*8btAV4o_@*7qSxPek^)^PSlPSME)Z0u}MW#w#$ z^t_zS3a;!qn+u$6$Zij3m$9qE*=a{=SHMj zP*8v1Mg+Yfj~FZ*+<6ezRPs0?8_6G@nwOkfoRe4#_3u3%ePnqqzr?aisFV&bBK9_N ziV5ZCCZ!fZdisplay_flags,DISPLAYf_SHOW); WinZBufUpdate; if (!IsSysDeterministic) @@ -29,7 +29,7 @@ U0 StartUpTasks() WinToTop(task1); WinTileVert; if (!IsSysDeterministic) - PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + PopUp("#include \"::/TempleOS/Adam/Start\";"); AdamLog("Boot Time:%7.3fs\n",tS); } diff --git a/SparrowOS/Accts/SafeMode/DoItOnce.CPP b/TempleOS/Accts/SafeMode/DoItOnce.CPP similarity index 76% rename from SparrowOS/Accts/SafeMode/DoItOnce.CPP rename to TempleOS/Accts/SafeMode/DoItOnce.CPP index 94cb625..f84f897 100644 --- a/SparrowOS/Accts/SafeMode/DoItOnce.CPP +++ b/TempleOS/Accts/SafeMode/DoItOnce.CPP @@ -1,6 +1,6 @@ //This file is executed by the //first terminal window upon start-up. -//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,DoItOnce"$. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP,DoItOnce"$. //It goes in your HOME directory and //you can customize it. diff --git a/TempleOS/Accts/TS/Adam3.CPP b/TempleOS/Accts/TS/Adam3.CPP new file mode 100644 index 0000000..7bdfb98 --- /dev/null +++ b/TempleOS/Accts/TS/Adam3.CPP @@ -0,0 +1,13 @@ +//Change anything you want in this +//acct file or others. + +#exe {OptOn(OPTf_WARN_PAREN);}; +#exe {OptOn(OPTf_WARN_DUP_TYPES);}; +#include "HOME/Adam3aLocalize" +#include "HOME/Adam3bPkgs" +#include "HOME/Adam3cSnd" +#include "HOME/Adam3dKeyPlugIns" +#include "HOME/Adam3eWrappers" +#include "HOME/Adam3fSys" +#exe {OptOff(OPTf_WARN_PAREN);}; +#exe {OptOff(OPTf_WARN_DUP_TYPES);}; diff --git a/TempleOS/Accts/TS/Adam3bPkgs.CPP b/TempleOS/Accts/TS/Adam3bPkgs.CPP new file mode 100644 index 0000000..c10725a --- /dev/null +++ b/TempleOS/Accts/TS/Adam3bPkgs.CPP @@ -0,0 +1,9 @@ +#include "/TempleOS/Accts/Adam3bPkgs" + +#include "/TempleOS/Apps/TimeClock/Load" +#include "/TempleOS/Apps/MusicOrgan/Load" +Cd("HOME");; +#include "/TempleOS/Accts/TS/TSAdam" +#include "/TempleOS/Accts/TS/TSDistro" +#include "/TempleOS/Demo/WebLogExample/WebLogRep" +Cd("HOME");; diff --git a/SparrowOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP b/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP similarity index 82% rename from SparrowOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP rename to TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP index 70018aa..50eaabd 100644 --- a/SparrowOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP +++ b/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP @@ -3,13 +3,13 @@ U0 FillInTime() { - CDate ltdt; - ltdt=GetCurTimeCDate; - "$$IV,1$$----%D %T----$$IV,0$$\n",ltdt,ltdt; + CDate spdt; + spdt=GetCurTimeCDate; + "$$IV,1$$----%D %T----$$IV,0$$\n",spdt,spdt; } U0 RandQuote(I64 num) -{ //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ +{ //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$ I64 i,size,l=512; U8 *bible_filename=Define("ST_BIBLE_FILE"), *buf=FileRead(bible_filename,&size); @@ -22,8 +22,8 @@ U0 RandQuote(I64 num) } U0 BadCodeJump(I64 num) -{ //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ - CDirEntry *root=FilesFind("/SparrowOS/*",FUF_JUST_FILES|FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_SRC_FILES), +{ //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$ + CDirEntry *root=FilesFind("/TempleOS/*",FUF_JUST_FILES|FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_SRC_FILES), *tempm=root; I64 cnt=0; CDoc *doc; @@ -45,7 +45,7 @@ U0 BadCodeJump(I64 num) } tempm=tempm->next; } - CDirListDel(root); + CDirLstDel(root); Ed(st); Free(st); } @@ -54,7 +54,7 @@ Bool MyPutKey(I64 ch,I64 sc) { //ch=ASCII; sc=scancode //See $LK,"Char","HI:Char"$ for definition of scan codes. -//See $LK,"Keyboard Handling","FI:::/SparrowOS/Doc/KeyBoard.TXT.Z"$ +//See $LK,"Keyboard Handling","FI:::/TempleOS/Doc/KeyBoard.TXT"$ //You can customize keys. This routine //is called before the main editor @@ -129,7 +129,7 @@ Bool MyPutKey(I64 ch,I64 sc) else SetKeyDesc("God Word"); } else { - //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ + //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$ if (sc & SCF_SHIFT) RandQuote(KbdMouseEvtTime>>4); else @@ -139,14 +139,14 @@ Bool MyPutKey(I64 ch,I64 sc) case SC_F6: if (sc&SCF_KEY_DESC) { if (sc & SCF_SHIFT) - SetKeyDesc("Cmd/Init WordStat Text"); + SetKeyDesc("Cmd/Init WordStat Spirit"); else - SetKeyDesc("Cmd/Init WordStat LT"); + SetKeyDesc("Cmd/Init WordStat TempleOS"); } else { if (sc & SCF_SHIFT) - PopUp("WSInit(\"::/SparrowOS/Misc/Bible.TXT.Z\");"); + PopUp("WSInit(\"::/TempleOS/Apps/HolySpirit/Vocab.TXT*\");"); else - PopUp("WSInit(\"::/SparrowOS/\" TEXT_FILE_MASK \";~*Bible.TXT.Z\");"); + PopUp("WSInit(\"::/TempleOS/\" FILENAME_MASK_TXT \";~*Bible.TXT*\");"); } break; case SC_F7: @@ -234,7 +234,7 @@ Bool MyPutKey(I64 ch,I64 sc) case 'b': if (sc&SCF_KEY_DESC) SetKeyDesc("Cmd/Jump to Bad Code"); - else //$LK,"::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z","FI:::/SparrowOS/Apps/AfterEgypt/AENotes.TXT.Z"$ + else //$LK-A,"::/TempleOS/Apps/AfterEgypt/AENotes.TXT"$ BadCodeJump(KbdMouseEvtTime>>4); return TRUE; @@ -242,13 +242,13 @@ Bool MyPutKey(I64 ch,I64 sc) if (sc&SCF_KEY_DESC) SetKeyDesc("JukeBox(TAD)"); else - JukeBox("::/SparrowOS/Accts/TS/TAD/MusicOrgan"); + JukeBox("::/TempleOS/Accts/TS/TAD/MusicOrgan"); return TRUE; case 'P': if (sc&SCF_KEY_DESC) SetKeyDesc("JukeBox(Examples)"); else - JukeBox("::/SparrowOS/Apps/MusicOrgan/Examples"); + JukeBox("::/TempleOS/Apps/MusicOrgan/Examples"); return TRUE; } } diff --git a/SparrowOS/Accts/TS/Adam3eWrappers.CPP b/TempleOS/Accts/TS/Adam3eWrappers.CPP similarity index 76% rename from SparrowOS/Accts/TS/Adam3eWrappers.CPP rename to TempleOS/Accts/TS/Adam3eWrappers.CPP index 4d4ea2b..3eff1d0 100644 --- a/SparrowOS/Accts/TS/Adam3eWrappers.CPP +++ b/TempleOS/Accts/TS/Adam3eWrappers.CPP @@ -1,4 +1,4 @@ -#include "/SparrowOS/Accts/Adam3eWrappers" +#include "/TempleOS/Accts/Adam3eWrappers" #help_index "Utils;Cmd Line (Typically)" public U0 M(U8 *src1,U8 *src2,U8 *fu_flags=NULL) diff --git a/SparrowOS/Accts/TS/Adam3fSys.CPP b/TempleOS/Accts/TS/Adam3fSys.CPP similarity index 67% rename from SparrowOS/Accts/TS/Adam3fSys.CPP rename to TempleOS/Accts/TS/Adam3fSys.CPP index 157cc8a..5c2f209 100644 --- a/SparrowOS/Accts/TS/Adam3fSys.CPP +++ b/TempleOS/Accts/TS/Adam3fSys.CPP @@ -2,12 +2,23 @@ U0 UserStartUp() { //Run each time a user a spawned UseTermDoc; DocCurAttr(WHITE<<4+BLUE); - Type("::/SparrowOS/Doc/Start.TXT.Z"); + Type("::/TempleOS/Doc/Start.TXT"); LBts(&Fs->display_flags,DISPLAYf_SHOW); WinZBufUpdate; if (!IsSysDeterministic) Preempt(ON); Dir; + switch (ts_cid) { + case CID_TAD8: + "$$FG,GREEN$$TAD8$$FG$$: "; + break; + case CID_TAD8_VM: + "$$FG,RED$$TAD8_VM$$FG$$: "; + break; + case CID_DFT: + "$$FG,PURPLE$$DFT$$FG$$: "; + break; + } CPURep; } @@ -29,12 +40,12 @@ U0 StartUpTasks() WinToTop(user1); WinTileVert; if (!IsSysDeterministic) - PopUp("#include \"::/SparrowOS/Adam/Start.CPP.Z\";"); + PopUp("#include \"::/TempleOS/Adam/Start\";"); AdamLog("Boot Time:%7.3fs\n",tS); - XTalk(user1,"#include \"DoItOnce.CPP.Z\";\n"); + XTalk(user1,"#include \"DoItOnce\";\n"); Silent(ON); if (!IsSysDeterministic) - WSInit("/SparrowOS/" TEXT_FILE_MASK ";~*Bible.TXT.Z"); + WSInit("/TempleOS/" FILENAME_MASK_TXT ";~*Bible.TXT*"); Silent(OFF); AdamLog("WordStat Time:%7.3fs\n",tS); if (ts_has_win_drv) diff --git a/SparrowOS/Accts/TS/DoItOnce.CPP b/TempleOS/Accts/TS/DoItOnce.CPP similarity index 64% rename from SparrowOS/Accts/TS/DoItOnce.CPP rename to TempleOS/Accts/TS/DoItOnce.CPP index 6fe56f4..92000b3 100644 --- a/SparrowOS/Accts/TS/DoItOnce.CPP +++ b/TempleOS/Accts/TS/DoItOnce.CPP @@ -1,6 +1,6 @@ //This file is executed by the //first terminal window upon start-up. -//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP.Z,DoItOnce"$. +//See $LK,"DoItOnce","FF:HOME/Adam3fSys.CPP,DoItOnce"$. //It goes in your HOME directory and //you can customize it. @@ -8,5 +8,5 @@ //Delete this to get rid of //default start-up msg. -//Type("::/SparrowOS/Doc/Customize.TXT.Z"); +//Type("::/TempleOS/Doc/Customize.TXT"); diff --git a/SparrowOS/Accts/TS/PersonalMenu.TXT b/TempleOS/Accts/TS/PersonalMenu.TXT similarity index 83% rename from SparrowOS/Accts/TS/PersonalMenu.TXT rename to TempleOS/Accts/TS/PersonalMenu.TXT index a886958024fe6b6f96e2d2b4bc4114bc5f10a9db..00f8840c9990a3ba1a227acc8dfaa58df962ea7c 100644 GIT binary patch delta 3032 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 diff --git a/SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP b/TempleOS/Accts/TS/TAD/Adam3aLocalize.CPP similarity index 94% rename from SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP rename to TempleOS/Accts/TS/TAD/Adam3aLocalize.CPP index 54e8d1d..ee77a09 100644 --- a/SparrowOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP +++ b/TempleOS/Accts/TS/TAD/Adam3aLocalize.CPP @@ -12,7 +12,7 @@ snd_vol=0.1; //$AN,"","mouse_move_scale"$adjust these to set mouse move scale mxx_scale=0.5; myy_scale=0.5; -mzz_scale=1.0; //wheel +mzz_scale=5.0; //wheel //don't change these mxx_prescale=mxx/mxx_scale; diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP b/TempleOS/Accts/TS/TAD/Archive/FileSysISO3.CPP similarity index 96% rename from SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP rename to TempleOS/Accts/TS/TAD/Archive/FileSysISO3.CPP index ed59842..77df7d0 100644 --- a/SparrowOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP +++ b/TempleOS/Accts/TS/TAD/Archive/FileSysISO3.CPP @@ -117,8 +117,8 @@ class CISO3PriDesc U16 max_vol_seq_num; U16 interchg_level; U16 max_interchg_level; - U32 char_set_list; - U32 max_char_set_list; + U32 char_set_lst; + U32 max_char_set_lst; CISO3DString128 vol_set_id; CISO3CharSpec desc_char_set; CISO3CharSpec explanatory_char_set; @@ -194,8 +194,8 @@ class CISO3FileSetDesc CISO3Date recording_date_time; U16 interchg_level; U16 max_interchg_level; - U32 char_set_list; - U32 max_char_set_list; + U32 char_set_lst; + U32 max_char_set_lst; U32 file_set_num; U32 file_set_desc_num; CISO3CharSpec log_vol_id_char_set; @@ -369,7 +369,7 @@ Bool ISO3PrtInit(CPrt *p,I64 blk) goto i3pi_done; default: PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); - throw(EXCEPT_PRT,8); + throw(EXCEPT_PRT,10); } i++; } @@ -389,10 +389,10 @@ i3pi_done: /**** -U0 CDate2ISO3(CISO3Date *dst,CDate ltdt) +U0 CDate2ISO3(CISO3Date *dst,CDate spdt) { CDateStruct ds; - CDate2CDateStruct(&ds,ltdt); + CDate2CDateStruct(&ds,spdt); MemSet(dst,0,sizeof(CISO3Date)); dst->year=ds.year; dst->mon=ds.mon; @@ -438,7 +438,7 @@ Bool ISOPrtInit(CPrt *p,I64 blk) RBlks(p,iso,i*spc,spc); buf[0](U32)=iso->id[0](U32); buf[4](U16)=iso->id[4](U8); - switch (ListEntryMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",LEF_EXACT)) { + switch (LstEntryMatch(buf,"CD001\0CDW02\0BEA01\0BOOT2\0NSR02\0NSR03\0TEA01\0",LEF_EXACT)) { case 0: p->type=PT_ISO9660; switch (iso->type) { @@ -450,7 +450,7 @@ Bool ISOPrtInit(CPrt *p,I64 blk) result=TRUE; goto ipi_done; case ISO1T_TERMINATOR: - throw(EXCEPT_PRT,9); + throw(EXCEPT_PRT,11); } break; case 2...6: @@ -468,7 +468,7 @@ Bool ISOPrtInit(CPrt *p,I64 blk) break; } PutDefineErr("ST_UNSUPPORTED_FILE_SYSTEM"); - throw(EXCEPT_PRT,10); + throw(EXCEPT_PRT,12); } i++; } diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/Logo.TXT b/TempleOS/Accts/TS/TAD/Archive/Logo.TXT similarity index 86% rename from SparrowOS/Demo/AcctExample/TAD/Archive/Logo.TXT rename to TempleOS/Accts/TS/TAD/Archive/Logo.TXT index efc8df6a9698ce5aa25f592a158ba447c563a4a9..6281b43dba79e958fbe25c9f820f219cb2cdb9e7 100644 GIT binary patch delta 1212 zcmZ3|%(SJMX~R6V$@>lDCof=PpUlG)H#tFGU~+(#+2jj8vS6_u^@WrF+bV$BJWSD( zKX6M=zTl!gxj|WW^1c|Z$ugP?Chs>;gvv)uPLLOY>W7%QMr;1$|F%j{`OwJ|bmS)o zXhHNVuqI5NpyM@pzkxDTK6vs0OU=m*x+;?|_`u8zoP5AiYm%b!Bs-X@0H_Ga5fdk{ zgZ0Mf&zZd6Ko!j9Ve$p3nEZf)cXEKKieto(weACeKOAhC%P_`u4}xOq=@u=j!p@q>l#SWkg) z1;AV$CbP*0ETbmZDl1H$P#`kdfzfjE0ZWa^6YNYO%7mcGjKN_K6`p(`QgreH0oKWX z>?VMeO@3f6J(-8e0BqC)DORx92V-xjQK^#^SV6{WPM%B|J8q$!3t0?q&-Sh9tH(o=p%gEWH{-(|al` zy#LraP7ZLhhp2)iD^RF_a}7jzvOsw>)NH6SX!2pwoBV;BZ?b@&BSg14*s*i`Y9L%# zYS9K;Il%`SJCJmx6Ho30Z971OupXijzNZb5Fhy z>JHLAae^UOI47(K!ZiYOd6?wDs$#>vC+`Zko;U%LsQ!ePAai+`WHvvDuvD|z&cwjL y$iTqB!NkD8z{H`;z`(%Hz`$V7z`*d}|NsBH{{R242NeU+FnN#~-OaA`@k{{n|EX*M delta 1256 zcmdne%(SGLX~R6V$ptp@lNT_tPv&8Yo17poFgZZWY;u9AELf~Zec@z&Rk_LgV>l=C zFhx)Pz%4!bf{XU#`^E}jc^S|LK6&q+p_lLNFgCI=X)f`xcYW`ZZZK~H0HfR+wOAHwGjAdA565wKMN8`BUbJb8_C z;A97TH;_>DU8>HDL3#iIYJ`gDij?6XAU6U20*g&BGR^!0vI5|OHcyfT7^<)QG z*~tb@3X^SIJ0^pi0E&zYn*Ng&y!_zid@v53oFFd*R^MRA1#;5l2lmpFd6+Da#C2g| z5aZD@`GdYL!qsMwgzsiO`GOAbWJzNcn94VvO_LM!bSF*_g8Ii8oCN|xEWz#)unU9p zL4I1GCOdJ01XQU3+|UDZ{NRuSd4tEdZt?*+9$`G6cB*gS-K&B-6Qc_+{Fcbr_HtUFo2&U^9)ZobI^ zevXq5$O(eY{$T8cA_mIk0(PF0KXCI*t_^mbT%arj3dV^OWWdhiVN!-0xxw5PZaoi^ z5?oxtOnh>Isp{kp#|7gB}9|gFOQS!-N0- T|L^+$|38Qi7T+9NAI}5;2~x0> diff --git a/TempleOS/Accts/TS/TAD/Archive/Marketing.TXT b/TempleOS/Accts/TS/TAD/Archive/Marketing.TXT new file mode 100644 index 0000000..06e9928 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/Archive/Marketing.TXT @@ -0,0 +1,21 @@ +$WW,1$I have a million metaphors. Linux is a semi; Windows is a car; and TempleOS is a motorcycle. Or, it's like a 1960's muscle car that wouldn't be street legal, now, with all the safety crap regulations complicating and gunking-up, but boy is it fun and beautiful under the hood. Maybe, it's a tree-house -- you don't need building codes to mod it and it has no networking. It's a kayak, not a Titanic -- just reset it. Why do you want a 1970's main frame operating system, anyway, that has ugly 32-bit crap all over its C language? 7-bit ASCII for source code? Please! Why not fix all the standard C library to pure 64-bit? How awful PrintF() with "%ld" instead of "%d" and crap for long constants! Yuck! You'll love $LK,"TempleOS C","FI:::/TempleOS/Doc/Differences.TXT"$. + +Okay, here's a $LK,"Pop Quiz","FI:::/TempleOS/Demo/Lectures/64BitAsmQuiz.TXT"$ to get you psyched-up for TempleOS! Assembly language knowledge is not required, but anyone interested in TempleOS is probably at least curious about assembly language. + +TempleOS has a good chance of running natively on $FG,4$x86_64$FG$ machines from about 2003-2010. After that, it will probably work just in VMware. + +1) Download the free $FG,4$$TX+HTML,"TempleOSCD.ISO (24.0 MB)","http://www.templeos.org/TempleOSCD.ISO"$$FG$. +2) Download the free $FG,4$$TX+HTML,"VMware Player","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ (The $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ web page takes a whole minute to load completely. Be patient. When it finally shows, pick the first ".exe" to download.) +3) Create an "Other 64-Bit" virtual machine. Aim its CD-ROM to TempleOSCD.ISO +4) Play the virtual machine. +5) Log-in as "Accts/Install". +6) Optionally, purchase $FG,4$$TX+HTML,"VMware WorkStation","http://www.vmware.com"$$FG$ or download $FG,4$$TX+HTML,"WinImage","http://www.winimage.com/winimage.htm"$$FG$ if you wish to transfer files in and out. + +If you want to install my personal version for $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$... +1b) Download the free $FG,4$$TX+HTML,"TempleOSTS.ISO (24.5 MB)","http://www.templeos.org/TempleOSTS.ISO"$$FG$. +3b) Create an "Other 64-Bit" virtual machine. Aim its CD-ROM to TempleOSTS.ISO +5b) Type >$FG,4$TSInstall;$FG$ or >$FG,4$TSUpgrade;$FG$ at the command-line. +7b) See $FG,4$MakeBackUp$FG$ to reproduce the ISO's in $FG,4$E:/Wb$FG$. It makes this website, too. + + +* "WinImage" is a trademark of Gilles Vollant. diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP b/TempleOS/Accts/TS/TAD/Archive/USB.CPP similarity index 98% rename from SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP rename to TempleOS/Accts/TS/TAD/Archive/USB.CPP index 26214a5..3bdb2bb 100644 --- a/SparrowOS/Demo/AcctExample/TAD/Archive/USB.CPP +++ b/TempleOS/Accts/TS/TAD/Archive/USB.CPP @@ -18,7 +18,7 @@ extern CUSBTD *USBAllocTD(); extern U0 USBFreeTD(CUSBTD *temptd); extern U0 USBEndAll(); extern U0 USBInitAll(); -extern U32 *USBAllocFrameList(I64 usb_num,I64 size); +extern U32 *USBAllocFrameLst(I64 usb_num,I64 size); U8 *StatCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) { //This routine shows the stat of the USB ports diff --git a/SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP b/TempleOS/Accts/TS/TAD/Archive/USB1a.CPP similarity index 89% rename from SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP rename to TempleOS/Accts/TS/TAD/Archive/USB1a.CPP index 02d3990..55c7f6c 100644 --- a/SparrowOS/Demo/AcctExample/TAD/Archive/USB1a.CPP +++ b/TempleOS/Accts/TS/TAD/Archive/USB1a.CPP @@ -18,7 +18,7 @@ class CUSB //Not implemented U8 num, //USB dev num bus,dev,fun; U16 ports,pad; - U32 *frame_list; + U32 *frame_lst; }; //USB Pkt ID's @@ -98,17 +98,17 @@ U0 USBFreeTD(CUSBTD *temptd) Free(temptd); } -U32 *USBAllocFrameList(I64 usb_num,I64 size) +U32 *USBAllocFrameLst(I64 usb_num,I64 size) { //aligned to 0x1000 CUSB *u; if (0<=usb_numframe_list); - u->frame_list=MAllocAligned(size*sizeof(U32),0x1000,sys_uncached_heap); + Free(u->frame_lst); + u->frame_lst=MAllocAligned(size*sizeof(U32),0x1000,sys_uncached_heap); OutU16(u->ports+USBP_CMD,0); //Stop OutU16(u->ports+USBP_FRNUM,0); - OutU32(u->ports+USBP_FRBASEADD,u->frame_list); - return u->frame_list; + OutU32(u->ports+USBP_FRBASEADD,u->frame_lst); + return u->frame_lst; } return NULL; } diff --git a/TempleOS/Accts/TS/TAD/MakeDistro.CPP b/TempleOS/Accts/TS/TAD/MakeDistro.CPP new file mode 100644 index 0000000..67d8d92 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MakeDistro.CPP @@ -0,0 +1,54 @@ +/*$HL,0$ +$FG,5$$TX+CX,"Roll Your Own Distro"$$FG$ + +It's unlikely you will get it running on bare hardware, so you'll probably +run it in a virtual machine such as VMware. Download the free 64-bit +$FG,4$$TX+HTML,"VMware Player","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ for Linux or Windows and point the CDROM at the $FG,4$$TX+HTML,"TempleOSCD.ISO","http://www.templeos.org/TempleOSCD.ISO"$$FG$. +(The $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ web page takes a whole minute to load. They hide the free version.) + +Purchase $FG,4$$TX+HTML,"VMware WorkStation","http://www.vmware.com"$$FG$ or download $FG,4$$TX+HTML,"WinImage","http://www.winimage.com/winimage.htm"$$FG$ if you wish to transfer files +in and out. The VMWare Workstation will stretch to full-screen and make drives +accessible from Windows. + +$HL,1$*/ + +#define STD_DISTRO_CDROM_CFG "b10x20000\nt3 \n\n\n\n\n" + +U0 MakeMyISO(U8 *out_iso_filename) +{//Does everything with current drive. + if (!IsDrvWritable) { + "Drive must be writable. Install on Hard drive, first.\n"; + return; + } + DelTree("/Distro"); + Auto(STD_DISTRO_CDROM_CFG); + MakeOSInstallPrtBootLoader(,'T'); + CopyTree("/0000Boot","/Distro/0000Boot"); + CopyTree("/TempleOS","/Distro/TempleOS"); + //To save space, optionally delete dictionary. + Del("/Distro/TempleOS/Adam/WordStat/WSDefs.DAT"); + Del("/Distro/TempleOS/Misc/Bible.TXT.Z"); + Del("/Distro/TempleOS/Misc/PCIDevices.TXT.Z"); + MkDir("/Distro/Temp"); + MkDir("/Distro/Temp/ScreenShots"); + CDFileCreate(out_iso_filename,"/Distro/*","",BOOTCD_BIN_Z); + //CDImageWrite('T',out_iso_filename,MT_CD); //Uncomment to burn a CD-ROM or (MT_DVD) + //DelTree("/Distro"); +} + +MakeMyISO("/MyDistro.ISO"); + +// Study my account examples $LK,"Cfg Strs","FL:::/TempleOS/Demo/AcctExample/TSAdam.CPP,1"$ $LK,"Update Funs","FL:::/TempleOS/Demo/AcctExample/TSDistro.CPP,1"$. + + + + + +/* + +* "Linux" is probably a trademark owned by Linus Torvalds. +* "VMware Player" and "VMware WorkStation" are trademarks of VMware, Inc. +* "Windows" is a trademark of MicroSoft Corp. +* "WinImage" is a trademark of Gilles Vollant. + +*/ diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/abiding.CPP similarity index 91% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/abiding.CPP index f0e67a9..20b1d30 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/abiding.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/abiding.CPP @@ -50,11 +50,8 @@ U0 Song() "$LK,"Daniel,9:17","BF:Daniel,9:17"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); "$$BD+H,LTCYAN$$$$FD+H,BLACK$$"; while (!ScanKey) { "$$FG,WHITE$$To God...\n$$FG$$"; diff --git a/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/abyss.CPP similarity index 87% rename from SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/abyss.CPP index 204f25d..3bec3d0 100644 --- a/SparrowOS/Apps/MusicOrgan/Examples/abyss.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/abyss.CPP @@ -17,11 +17,8 @@ U0 Song() "barrier. ($LK,"Deuteronomy,4:22","BF:Deuteronomy,4:22"$)\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { Play("W13sBBBBqCq.BeAqBh.A", "Can't \0 \0 \0 \0get \0there, \0from \0he\0re.\n\0"); diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/almighty.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/almighty.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/almighty.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/awake.CPP similarity index 91% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/awake.CPP index aef5327..8044511 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/awake.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/awake.CPP @@ -53,11 +53,8 @@ U0 Song() "$LK,"Mark,14:37","BF:Mark,14:37"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { "$$FG,GREEN$$Jesus talking...$$FG$$\n"; Play("W13eBC!qB2sG3D2G3DetC!!GFsCBCB!etCGBeB!!GsBCB!C", diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP similarity index 91% rename from SparrowOS/Apps/MusicOrgan/Examples/bedewed.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP index 6f2fb23e972bb7afd91994f5c413817a15ad42e7..6e1d824ef12d4bdcd1956c7715ecd4005a3f1d99 100644 GIT binary patch delta 105 zcmeyvzlVRqli1+YlJLwtkNl!44Yy)lyYkGu_?*A4F(D=0 delta 170 zcmdnP|A&9Vllqdx;%r^J^31&WqRjM+5?i-oB%U>wf&xN8PHGxL9>hVFF3B%|>rToq zDap^(Hbzwe5w%5_SduSSplxUbQWcU|ob8fYlv$RV5|)@#99oc)Sdyx-*^#lD4FKeB BJe2?d diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/blinded.CPP similarity index 84% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/blinded.CPP index e9bb360..7d3a96a 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/blinded.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/blinded.CPP @@ -22,11 +22,8 @@ U0 Song() "$LK-A,"BF:Acts,9:3"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); music_tempo=2.5; DocCursor; DocClear; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/born.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/born.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/born.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/childish.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/childish.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/childish.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/compassions.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/compassions.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/compassions.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/completed.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/completed.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/cosam.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/cosam.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/depending.CPP similarity index 80% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/depending.CPP index 3443335..fe1d7cc 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/depending.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/depending.CPP @@ -9,11 +9,8 @@ U0 Song() "$LK-A,"BF:Luke,12:16"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { Play("3etGREqDDBRGCB", "It \0 \0de\0pends \0 \0on \0 \0the \0wea\0ther.\n\0"); diff --git a/SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/despairing.CPP similarity index 74% rename from SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/despairing.CPP index f2bd6cd..4bdc490 100644 --- a/SparrowOS/Apps/MusicOrgan/Examples/despairing.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/despairing.CPP @@ -12,9 +12,9 @@ U0 Song() Play("FeDhFeDhFE"); Play("M4/4"); Play("qD!!2G3AeBF!FE2qG!!3D!!A", - " \0 \0 \0 \0It's \0gon\0na \0be \0fine.\n\0 \0"); + "Hold \0 \0on!\n\0 \0It's \0gon\0na \0be \0fine.\n\0 \0"); Play("D!!2G3AeBF!FE2qG!!3D!!A", - " \0 \0 \0 \0It's \0gon\0na \0be \0fine.\n\0 \0"); + "Hold \0 \0on!\n\0 \0It's \0gon\0na \0be \0fine.\n\0 \0"); } } catch CatchAll; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/determination.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/determination.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/determination.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP similarity index 98% rename from SparrowOS/Apps/MusicOrgan/Examples/dialogue.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP index 13af13e0c0f961539dfb18f2a961e475bf737e20..2175e901046f9044d03f781bc9251d39df27dcb0 100644 GIT binary patch delta 12 TcmdlcwN+}v2gc1G8C|&nC7%U0 delta 14 VcmdlgwM}Zn2S!Hc%^w(DxdAP-1$h7f diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/disputing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/disputing.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/disputing.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/disputing.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/doing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP similarity index 96% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/doing.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP index af7c86cdb4d4b12456a084cbcffaf519c44fae26..a7890bc9ccdb5aa3902a1a49a70ffca82db06dcf 100644 GIT binary patch delta 64 zcmbO$a$aPE1*36hnu113iJhUDCYOSOf`WTdP<~0IYhkHIO0uq9k&c0$sa9}ip2lN+ TBdwGYO-*Yq1%=I)j88ZKUGNfT delta 14 VcmX>vGFN1S1tX*L=4{3%8~`R01kC^d diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/downfall.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/downfall.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/downfall.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/dream.CPP similarity index 86% rename from SparrowOS/Apps/MusicOrgan/Examples/dream.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/dream.CPP index cebd934..313adf2 100644 --- a/SparrowOS/Apps/MusicOrgan/Examples/dream.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/dream.CPP @@ -1,4 +1,4 @@ -//7 has words +//8 has words U0 Song() { Fs->task_end_cb=&SndTaskEndCB; @@ -14,7 +14,7 @@ U0 Song() Play("!!GF!G!!FE!!BE!BeCB2qG3sFAFAqCEA", "Hi-\0 \0i-\0gh \0as \0 \0your \0 \0thoughts \0will \0go.\n\0 \0 \0 \0 \0 \0 \0 \0"); Play("!!sGF!G!!FE!!BE!BeCB2qG3sFAFAqCEA", - "Stu-\0 \0u-\0ck \0on \0 \0this \0 \0Earth \0be\0low.\n\0 \0 \0 \0 \0 \0 \0 \0"); + "Deep \0 \0 \0as \0 \0 \0we \0 \0ought \0to \0know.\n\0 \0 \0 \0 \0 \0 \0 \0"); } } catch CatchAll; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/efforts.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/efforts.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/efforts.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP similarity index 98% rename from SparrowOS/Apps/MusicOrgan/Examples/elijah.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP index fb3e58b4507e92eb3f700d72b79b617b64853a62..bd01a08091d105211c86031d6451b11a71e3b0aa 100644 GIT binary patch delta 113 zcmey{$+)MJal=Q(&7T;v8DoP}OTshrJo1aGG~9}H?aDLr;&W2dN_1eHqRjM+5}lI7 n;%rT8E(HaM^03sR61eiD{F0LVTy0~x7N~%ssm|tK%*>7eo9Zc2 delta 180 zcmdnf$@sUEal=POM(52R8M7JdOA?E-b?wSC^Wuv#(=$qJ-HMTT)?5k-2n9K*X$W}` z2UWTxzW}Z~DZiv7KUdorRRu)U7GYvZzFdK}p%F+`NMdoeOKMSOS!zmHVoq^rK}upt Ls>bG>%*>7eRc1g; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/environeth.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/environeth.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/environeth.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/environeth.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP similarity index 88% rename from SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP index 8698e56..051eac7 100644 --- a/SparrowOS/Apps/MusicOrgan/Examples/epicurus.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP @@ -19,11 +19,8 @@ U0 Song() "$LK,"John,16:24","BF:John,16:24"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { Play("W13qBeCDqCAetAACeECsF2G3F2GqG", "I'm \0on \0a \0mis\0sion \0from \0 \0 \0my \0 \0God.\n\0 \0 \0 \0 \0"); diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/exalt.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/exalt.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/exalt.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/exiled.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/exiled.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/exiled.CPP diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP new file mode 100644 index 0000000..8d2d44d --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP @@ -0,0 +1,20 @@ +//0 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13e.C2sG3qEe.FsB!eCCsFGeBA!AetAR!!EeE!sCB"); + Play("e.C2sG3qEe.FsB!eCCsFGeBA!AetAR!!EeE!sCB"); + Play("eG!E2qG3sCD!CDe.EsG!!qCsD!CDC!!e.AsReG!E"); + Play("G!E2qG3sCD!CDe.EsG!!qCsD!CDC!!e.AsReG!E"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/expedition.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/expedition.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/fairness.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/fairness.CPP similarity index 83% rename from SparrowOS/Apps/MusicOrgan/Examples/fairness.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/fairness.CPP index f3448e4..5f8ca14 100644 --- a/SparrowOS/Apps/MusicOrgan/Examples/fairness.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/fairness.CPP @@ -10,11 +10,8 @@ U0 Song() "$LK-A,"BF:Luke,15:21"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); music_tempo=2.5; try { "$$WW+H,1$$"; diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/feigned.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/feigned.CPP new file mode 100644 index 0000000..f1b208e --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/feigned.CPP @@ -0,0 +1,25 @@ +//7 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.857; + try { + while (!ScanKey) { + Play("W13eEDEFqDDeEDEDqCC", + "$$CL$$Sit\0ting \0in \0a \0church\n\0 \0wond\0ering \0to \0my\0self,\n\0 \0"); + Play("eD2G3BCqDsGGGGeD2G3BCqDsGGGG", + "\"Is \0 \0God \0 \0real?\"\n\0 \0 \0 \0 \0\"At \0 \0the \0 \0wheel?\"\n\0 \0 \0 \0 \0"); + "$$FG,GREEN$$God talking...\n$$FG$$"; + Play("qF!FFetREA!qG!sG!FG!!F!GEGEqC", + "$$FG,RED$$Oh, \0Hell \0yes!\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("F!FFetREA!qG!sG!FG!!F!GEGEqC", + "Pass \0the \0test.$$FG$$\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/finger.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP similarity index 97% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/finger.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP index d4a7d29dc12e9b250cff62c01d9afdbab3bbd443..8d948671f0d317ea01f1863d185bfaa4f0018cc0 100644 GIT binary patch delta 16 YcmZpW|0g%0eqw|5#0HU#7dG$#06%{RdjJ3c delta 17 Ycmew-*C0Qkp3!+?y)~or#$8AF06uvJ+W-In diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP similarity index 91% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/first.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP index 0934f6323d4b0db0c361a1f38c2d14359aeed0d8..9115c426bd758b610e35b63c9565853f8eda992e 100644 GIT binary patch delta 106 zcmcc1Hib|0TH!Dm{^i8SDV!3CDhI2?_akhe1Nn&xfjuhhCRa6=f`X@+i9)7Mxh+UW z*RDJ>FTNnNA~h$zJTs*vLni}6JR>zTJ)^{$OF;pmqa?MWBtEgEq{!AM#5vN@&&I|C zB$<+|YnPm#lV4wC>lEZ4?gtV}%P&&U$h0-qD)Ch{GO*6HDYwqlwly-)4TY7Wb5SP=noyM#z-w8tNF- z>wu^XO>3@NF0N1mh2Z?WbPb5lk%GjUi%UTvIJKlCGcUb3ptLx{T0vhwI5ky4#m8Gm z30Xo(N6FXE3PnVPOF_Y{Sl2G4D6u>~v&2>n667Ffx)o1!S(Y4}S`wa_=aFAjr2$e0 z3gevAv=SW{rwA0HI-uYL`v9UmEVZZvt~@Efq$EFA+Ze6|Dqv^|)i$}0QCv((Ma9`i uMMXu$$z2B$87eAD)|(eI)-q0RW|o{R&zwAY4zo5F%%AxMo6j(7u>b&ScdN$$ delta 212 zcmdli^o@Ul#$;1QiOCBYSJjs!7H8|)m1pL~7iFerl-RlzBk`=c6ci8&a#GU}@*obX zbV+^zTz67_NlAXLwlS&-h^Q^X#FBi~0&PPhkgAZx;%t}HqRg_?l(58{;?RPW#FA7E qkWx)+uF30|#5dn%s%D&A#F8{QoJDH#6&7vQyc7)s&CQ&wS}Xu($w>DA diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/fixing.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/fixing.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/fixing.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/flung.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/flung.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/flung.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/fog.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP similarity index 97% rename from SparrowOS/Apps/MusicOrgan/Examples/fog.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP index f7f0a988995bbc288a9a28f9b932b9bbfbce11df..e7d822272a0dc65cf9fc4f2335676e011f38ea89 100644 GIT binary patch delta 10 ScmZ3&vzTYX#Ep|Cu>t@XA_Q9i delta 12 UcmZ3?vxH~DL`LV06DP3(03LJ%o&W#< diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/freaks.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/freaks.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/freaks.CPP diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/free.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/free.CPP new file mode 100644 index 0000000..a81d80a --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/free.CPP @@ -0,0 +1,152 @@ +//8 has graphics + +class CBubble +{ + CBubble *next,*last; + F64 x,y,dx,dy,radius; +} root; + +F64 t0; +U64 flags; + +#define X 360 +#define Y 52 + +F64 Windé() +{ + F64 t=ã*(tMBeat-t0); + return Arg(Sin(t/8),1.0+Sin(t/4)); +} + +U0 DrawIt(CTask *,CDC *dc) +{ + CBubble *tempb; + F64 é; + + if (LBts(&flags,0)) + return; + + dc->flags|=DCF_TRANSFORMATION; + GrRotXEqu(dc->r,ã/4); + + é=Wrap(ã-Windé); + GrRotZEqu(dc->r,-ã/2+é/4); + + dc->color=BLUE; + dc->x=X; + dc->y=Y; + dc->pen_width=2; + GrCircle3(dc,0,0,0,10); + GrLine3(dc,-10,0,0,-30,0,0); + + tempb=root.next; + while (tempb!=&root) { + dc->color=LTBLUE; + GrCircle(dc,tempb->x,tempb->y,tempb->radius); + dc->color=LTGRAY; + GrCircle(dc, + tempb->x+0.65*tempb->radius*Cos(5*ã/8), + tempb->y-0.65*tempb->radius*Sin(5*ã/8), + 1.0+0.2*tempb->radius); + tempb=tempb->next; + } + LBtr(&flags,0); +} + +U0 AnimateTask(I64) +{ //Preemption is off after Spawn + CTask *task=Fs->parent_task; + CBubble *tempb,*tempb1; + F64 t_last=tMBeat,dt,tSpawn=0,é; + + while (TRUE) { + dt=tMBeat-t_last; + t_last=tMBeat; + + while (LBts(&flags,0)) + Yield; + + tSpawn+=dt; + while (tSpawn>1.0) { + tempb=MAlloc(sizeof(CBubble)); + tempb->x=X; + tempb->y=Y; + tempb->dx=0; + tempb->dy=0; + tempb->radius=Rand*6+4; + QueIns(tempb,root.last); + tSpawn-=Rand; + } + + é=Windé; + tempb=root.next; + while (tempb!=&root) { + tempb1=tempb->next; + + tempb->dx+=25*dt*(Rand-0.5); + tempb->dy+=25*dt*(Rand-0.5); + tempb->x += dt*(20*Cos(é)+tempb->dx); + tempb->y +=-dt*(20*Sin(é)+tempb->dy); + + if (!(0<=tempb->xwin_pixel_width) || + !(0<=tempb->ywin_pixel_height) ) { + QueRem(tempb); + Free(tempb); + } + + tempb=tempb1; + } + + LBtr(&flags,0); + Sleep(20); + } +} + +U0 Init() +{ + flags=0; + QueInit(&root); + t0=tMBeat; +} + +U0 CleanUp() +{ + QueDel(&root); +} + +U0 Song() +{ + CTask *task; + SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + Preempt(OFF); + Init; + Fs->animate_task=Spawn(&AnimateTask,NULL,"Animate",Fs); + Fs->draw_it=&DrawIt; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + task=PopUpViewStr( + "$LK,"Romans,8:28","BF:Romans,8:28"$\n" + ); + TaskWait(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); + while (!ScanKey) { + Play("W13qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G", + "Free \0will... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0fail.\n\0 \0 \0 \0"); + Play("3qEEBeBDsBBB!BqDsBFB!!FD2G3D!2G", + "God \0still... \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0 \0hail.\n\0 \0 \0 \0"); + Play("3qD2G3eA2G3qCetEC!AqBsA!!C!ACqA", + "All \0things \0work \0for \0good... \0to \0the \0Lord.\n\0 \0 \0 \0 \0 \0 \0"); + Play("D2G3eA2G3qCetEC!AqBsA!!C!ACqA", + "It's \0all \0good... \0 \0 \0as\0 \0sured.\n\0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + SettingsPop; + CleanUp; +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP similarity index 99% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP index c1be26ced7eaf694b33657456e8f4799a76bd58a..6cdf9e0a4ba4b3713be7aa77be4f2f6460fcbfcd 100644 GIT binary patch delta 12 UcmbQGIa71PM#jyX7+(kh03!PZNB{r; delta 14 WcmbQKIZJcHMn*>G%^MkC2mt^pUImK) diff --git a/SparrowOS/Apps/MusicOrgan/Examples/good.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP similarity index 91% rename from SparrowOS/Apps/MusicOrgan/Examples/good.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP index d6e52475562e6fb1d253b78628dbd06adb6ccf3a..cf276e2382b0518076ba6fcefcfd1bb5f9ae40e9 100644 GIT binary patch delta 14 Wcmey%@tb49{fQ5ZH;XW4G6MiOUxR;+7Ro|zY)lbTkd1LG8Bre~Dslq42s nYg%(DC_t2lr52UIl_%wwl;r1X8^g6g1q@B0+BWMk{bvOLhXN~A delta 187 zcmaFGzgA$vVn*kQi>(=*C*E6CUy@jyt!r1FnHOJ_nVwN%>sE}!v*uDzKq$ybO+(0o zIH=Mk`2}#@N%L784UIsmLK2I!T~doO%TiOq5_5_}3sMqG RQZ+zIHLbZezh?Z;3IIU-Lzw^o diff --git a/SparrowOS/Apps/MusicOrgan/Examples/happy.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP similarity index 96% rename from SparrowOS/Apps/MusicOrgan/Examples/happy.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP index 5bc464eb9e93c4af36586c85b3477b58480b5ed6..0c9141b515bd1747d999fdb2705f8c03f2b103f6 100644 GIT binary patch delta 12 TcmeC-?dIJO#<)40(UcVc8ao4i delta 14 VcmeC??cv=J#>nWrIgHVi6#yVW1Hk|Q diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/honestly.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/honestly.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/honestly.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/honestly.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/hope.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP similarity index 97% rename from SparrowOS/Apps/MusicOrgan/Examples/hope.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP index c69d0c73115f51f3a4f2d9d9ed31af0734236a8a..d7845a1884722ec7b43e0622cb3771b99a612580 100644 GIT binary patch delta 10 RcmZqSZRVZOy0PsaD*zU11aSZW delta 12 TcmZqXZQ-5J%ILhY^&cw$94G{| diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/image.CPP similarity index 81% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/image.CPP index 5215337..24f5e8a 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/image.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/image.CPP @@ -12,11 +12,8 @@ U0 Song() "$LK-A,"BF:Luke,11:5"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { Play("3qBBE2GG3FFC", "We \0are \0in \0the \0image \0of \0God.\n\0 \0"); diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP new file mode 100644 index 0000000000000000000000000000000000000000..bcbd1938cce253019cab585c4ce17b3bb3273cff GIT binary patch literal 2495 zcmdPbH&@6=ELKP_N-W68OfKdE1C`(a9VHt>J0%@M6|g|4fkJS8Ub==RS2dS{f^$e> zakhe1Nn&xfHJ5^dTd}Skh#jArmlB_xWUCgOmjY7ZnwR421XAEzTAZ02oLW+nnU`K1 zR9pfQ%LR$Wm!#$v6us&wPwN;N!AwCBA!v#w$k(923{T7~(ExcHEE1er5}ujo zkzZ7$0Sf){%)I!V)U*;E7^f&RJ)=YiO?g;qQ3+gmQhrHEey+ALTnkjd&=jGqJR>tF zRY5~BI5{!TJGD|%p_+>`ASba>Ln++QxY$`y(a~AaG1bwj&@t7`F}1|S&B#5~-Po5Tt}?i+}w47TwPRD zyh@8p;FiJ}S^32osVRC02L@+kWaz=A6=DpW^Yda1(lS$0VT!+TlPAzdYayNEYEOb$HNp*KDbb*9mOrEDg zj6q_qLX3fXKHN1RF@+d|1G@wgSA=W;nMKfiXegsa7RVL_g<38J zg<6H=#FFF;aQ<-yu^e-9KuI?^FGT|s5Vc%fpaR62i-C!Ofq{_$0<0LoTv1U51_pBm z28J*H|Np=99|}N9piD5uz`y{Z`S>6VFz^5WksuBV3z(;o{mX|G7Q~8!%mM`+x_X#d zWQc>cF!1p)fXo14kR2cliYa7qm>kLCd<_4wnnSWU9|LxCz~X!$_rWmO{d{n7xExd* z#7D*;VUQb<#XxMZI2H-~;usnjVCftb#vpT{7%q;cgG%BIDESL&Cn$tyD-KHQ;6(NR mKZ?Hwg*Z|SP~aXUQy`fb>R(X0Kwyynq2(SZ&%!X&UIqYdz9qB( literal 0 HcmV?d00001 diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP new file mode 100644 index 0000000000000000000000000000000000000000..2b1b57ad1ee4d19f5a74fac5c1edbe6ab77e6bb0 GIT binary patch literal 2538 zcmdPbw@}DPELKP_N-W68OfKf);^I;X4$x7uF|f*k#V-TZ@m9YZ|*{XjYt6x@q~@=Kyz3rjUX zii>m%^o%rNGQr7-IjO#hB?ws!LsRYG%sh?9S{f-Ox<+Q2nwt8Crceza11fBdjlph# zSYBysYzi?gxS%MrBsCx>zrfP(K2;xMF zZO(w4#7YgNa6{u%=VB+PR7YheXBTHDWVVu~H5XJ_YKe=pQ>wF*vy-C}G8;*WqN9^ipwtOUn$}zlObiSRj0_OK#Kr*Tiz+cNFsLywFuec& z|NqDTP{0BMU_Ok)!UE<(4EX>5KSG>^g$0!dQi-gN2LfQ~AUqxr_y2#GIu;fds5lQu z28|0>hb#_J2-gMX!puWe2Qm>!9S;i&LLIU=50WE5;&63n#)0IJF$)U|#2?gF_aDtc z$d>YeJdDF1c+??+8BGz$IC!|=vltw45dVUc0fsqH0Tgwh6ap1Tqrl2w{=jV@D82oM zrvpd=L^BD@g&2o04`d=(0+oO&Lsf?vHc(rU?FAW#p%7*qvUwndsFs4#AvhPInui%S zaN|(TLyr}NG7NPnF2t!0)n+7RXy&1M1zHqwin_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); "$$WW+H,1$$"; while (!ScanKey) { Play("3eGAetCCCFFDqAeAAFAAFqG", diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP similarity index 96% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/limit.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP index 280eab205de95659504b7b654319889c942a0b28..640b197087de8c97277eb8f965f47d0b154413cc 100644 GIT binary patch delta 10 RcmdnNy`6i)x{d2OSpgYP1Tp{s delta 12 Tcmdnay@PwgI!5P>>o{2fASeWN diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/mary.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/mary.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/mary.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/mightest.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/mightest.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/mightest.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP similarity index 84% rename from SparrowOS/Apps/MusicOrgan/Examples/mildly.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP index a9a950758a319b412af62bc868af5daff9225ddf..adf7358699ff238f1a347d80da7aa808852ce6ad 100644 GIT binary patch delta 116 zcmey!w~lYZ^ocWqCcf6$EWyad7#o~g5}ujokzZ7$;a03`SDu*{pOczaq66a;Wu|A8 r=#(TDXKPw>DJVdchou&kz?CQEmz3n^Y8%6~Km`m5}!R*b~6=2B2V zD9A}oL&$?TsM00*1#sO-`6VU!x!T64Dj=e^2op>4task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + while (!ScanKey) { + Play("W13eFDGsBReCB2sGRGR!3qEetG!AGeG!sF!!GeRsDG"); + Play("eFDGsBReCB2sGRGR!3qEetG!AGeG!sF!!GeRsDG"); + Play("FAFAqG!eEEqBetE!!2GR!3eFsARe.BsCe.RsE"); + Play("FAFAqG!eEEqBetE!!2GR!3eFsARe.BsCe.RsE"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/nay.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/nay.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/nay.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/night.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP similarity index 98% rename from SparrowOS/Apps/MusicOrgan/Examples/night.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP index f3977a4dfe165746ae6aeb45f4c55ef071073fc6..e9efa1bb88058f79ec45051336a3e7e500b80034 100644 GIT binary patch delta 10 RcmbO&HA`y3yp8i~cmNoq1aJTV delta 12 TcmbOwHCt-JJVxh@^J;hiA0q^_ diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/o.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/o.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/o.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/o.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/partake.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/permitted.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/permitted.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/permitted.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/permitted.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/personal.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/personal.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/personal.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/population.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/population.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/population.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/proponent.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/proponent.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/proponent.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP similarity index 97% rename from SparrowOS/Apps/MusicOrgan/Examples/prosper.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP index a03b42c717de05ed32618cfbc7b806e83689d2c8..8f5bfea346e10c247ec0a4fd410d7fab1e523c90 100644 GIT binary patch delta 28 kcmX@Ey-$0?3`TZMO)dom1%=7W8GR=&XSCd`$23zI0D}eylK=n! delta 38 rcmdm|eO!CP3`TyP5?`m(#1c(SE(HYz1?S208GRW+q~&H+rkTP3@0JU4 diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/psalm.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/psalm.CPP new file mode 100644 index 0000000..fa72396 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/psalm.CPP @@ -0,0 +1,25 @@ +//8 has words +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 3.360; + music_stacatto_factor= 0.846; + try { + while (!ScanKey) { + Play("M5/4"); + Play("W12qGGG3qtCBA2qGGG3qtCetBBqtA", + "Hymn's \0not \0long.\n\0 \0 \0 \0Nor \0this \0song.\n\0 \0 \0 \0 \0"); + Play("qEeCCqDqtCBAM4/4", + "For\0 \0 \0give!\n\0 \0 \0 \0"); + Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE", + "That's \0 \0 \0all \0 \0I \0 \0say.\n\0 \0 \0 \0 \0 \0 \0"); + Play("qD!eA!2G3DG2G3DF!FAC!!2qG3eAE", + "This \0 \0 \0I \0 \0 \0 \0pray.\n\0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/purpose.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP similarity index 99% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/purpose.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP index 6cf873ef4af5ac7c0083dc870345787948bbc6b4..ca25e153fe7cb217f56299729cb081dcb00cc89d 100644 GIT binary patch delta 12 TcmeBE=~H3W*SFlr%q;`}6`cam delta 12 TcmeBE=~H3W*EiqD%q;`}6_Wza diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/reliance.CPP similarity index 86% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/reliance.CPP index 2ebe687..a80c7dc 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/reliance.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/reliance.CPP @@ -15,11 +15,8 @@ U0 Song() "am I worth?\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); try { while (!ScanKey) { Play("3qGsB2G3B2G3eF2G3sGGGGeRFC2G3qFC", diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/reposes.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/reposes.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/reposes.CPP diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/restless.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/restless.CPP new file mode 100644 index 0000000..b613806 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/restless.CPP @@ -0,0 +1,29 @@ +//9 has words +U0 Song() +{ + CTask *task; + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 1.710; + music_stacatto_factor= 0.736; + try { + task=PopUpViewStr( + "$LK,"Ecclesiastes,5:12","BF:Ecclesiastes,5:12"$\n" + ); + TaskWait(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); + while (!ScanKey) { + Play("W13sDDDACCADDACCAe.DsCCC2G3FD2G3FD2G3CCAe.D", + "I \0 \0 \0 \0got \0 \0 \0paid, \0 \0 \0to\0 \0 \0day.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE", + " \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0I \0 \0 \0can't \0 \0 \0get \0 \0to \0"); + Play("qD2sG3G2G3G!etGDAeF2GqG3etF!BA!!EACE!CE", + "sleep.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/rifled.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/rifled.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/rifled.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/risen.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/risen.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/risen.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/satisfaction.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP similarity index 71% rename from SparrowOS/Apps/MusicOrgan/Examples/satisfaction.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP index d592ae68f817e807acdc89763e438450452c9e18..60a52387c313f70b9e90995a848a51ea531d3a72 100644 GIT binary patch delta 173 zcmaDMGE-zj6yxM*M!(6c82u(kGs;drz@*1-tf^4VrJ$gokeOGKT4Xypgb5~RIystA zd9oz4_GDLPzsXaW6E}ZjPGXD?PAv(~%=5@Es?u;P*0n3o%!|)SO)JrXaf&k2GfH$y o5{t7nt-%IEG=!xVmB2M5<(HJ?=V}|nH9-XoO?5W^WzA**04<9-x&QzG delta 281 zcmbO!@?|IP^(BeL*}8V+nR)R=nduoNwr<5p zJZrEG2qihGX$Tb{4!VMp`~tWMN%n>OEnA2H diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/service.CPP similarity index 79% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/service.CPP index 0a31128..0d446f0 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/service.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/service.CPP @@ -13,11 +13,8 @@ U0 Song() "$LK,"John,13:14","BF:John,13:14"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { "$$FG,GREEN$$Jesus talking...\n$$FG$$"; Play("M6/8"); diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP similarity index 94% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/shield.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP index e0afa2422069b260a5e5b64784508573411d7312..c2a6e454edd0a2bbf72f135c3cc933d037c3dd82 100644 GIT binary patch delta 106 zcmZ1?_C$1pH)CvYYDsuzo=1LBm4;ifu3dR%UVKh!T8R#fQtask_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.902; + try { + task=PopUpViewStr( + "$LK,"Luke,12:12","BF:Luke,12:12"$\n" + ); + TaskWait(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); + while (!ScanKey) { + Play("W13hDeDA2qG3hDeD2GqF", + "It \0sig\0ni\0fies\n\0a \0big \0sur\0prise.\n\0"); + Play("3hDeD2sFG3qAhDeDA2qG", + "Why \0 \0im\0pro\0vise?\n\0$$FG,RED$$\"Be\0cause,\"$$FG$$ \0re\0plies.\n\0"); + Play("3eC!!EsACACeD2G3qA!AFeE2G!3etFCC", + "If \0 \0you \0 \0 \0 \0love \0your \0god,\n\0 \0don't \0bore \0 \0Him!\n\0 \0 \0"); + Play("eC!!EsACACeD2G3qA!AFeE2G!3etFCC", + "If \0 \0you \0 \0 \0 \0love \0your \0god,\n\0 \0sur\0prise \0 \0Him!\n\0 \0 \0"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/silver.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/silver.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/silver.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP similarity index 98% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/small.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP index a30233f5bf8870684477e4fbce7e2b635b13a96e..8ed1649ee898d88ae29f4637eedd6bb7cdda96dd 100644 GIT binary patch delta 20 ccmewo{4sb#2jk>U#=yz98J#xEFl8J!rNH%l{JQwIQ$TM2pq diff --git a/SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP similarity index 98% rename from SparrowOS/Apps/MusicOrgan/Examples/struggles.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP index 4e7ddc77882481678a8542be17fef22f529da735..364a3824019fc287e980fb2843f694c509a91699 100644 GIT binary patch delta 10 RcmeB_=#ZFjaN{9&ZU7hT1Xut7 delta 12 TcmeB>=#-dnkkNVLL3eHd9%2NW diff --git a/SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP similarity index 98% rename from SparrowOS/Apps/MusicOrgan/Examples/sustain.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP index 8a21ddb495eec2cf0567d0b7f0a713d0a8163706..860f0eed374024cb4f0f9be4fbb3edf57b9214d1 100644 GIT binary patch delta 10 RcmbOr)-N{U$;PMJTmTs<1d9Lw delta 12 TcmeAdn;win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { Play("W12eG3CD!AqE!!sACACG!EGEqDsAAA!AetCDD", "Ple\0ase \0te\0ach \0me.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP similarity index 90% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP index 94ab3da..8a6c94d 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP @@ -50,11 +50,8 @@ U0 Song() "$LK,"Daniel,9:17","BF:Daniel,9:17"$\n" ); TaskWait(task); - task->win_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); "$$BD+H,LTCYAN$$$$FD+H,BLACK$$"; while (!ScanKey) { Play("W12qG3eCB2hGqG3eCB2qG3A", diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/thither.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/thither.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/thither.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/twins.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/twins.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/twins.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP similarity index 95% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/valued.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP index ed5406640866c754da8d27fe11e852d569f6edd9..340c8d6cb3bd6f4a2534608e2a0ad2ae8f31a78c 100644 GIT binary patch delta 10 RcmaFL{e*i$`^Jt~Rsb971d;#% delta 12 TcmaFD{git`JEQZ)_E=T`BPayb diff --git a/SparrowOS/Apps/MusicOrgan/Examples/vengeance.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP similarity index 96% rename from SparrowOS/Apps/MusicOrgan/Examples/vengeance.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP index 04a55b93e1cf5b242194f1edb39b0a9831c348f1..c4d6636856fc8b323dfe6e66df643d55f6788e80 100644 GIT binary patch delta 113 zcmZ2({J>~~0OMvs#uUc*;M9`v%sh|$qACryVqLrP%)I!V)U*;E7^f&RJ)=aYB(XSK n)0#^`K|ukcAuP411g;?|zoaBTSKAn_2`XS{swf`WnqLP<_)8bSq# zgRYYMVV!(DPf5@#i0c$ Oi6yBTn=dotask_end_cb=&TaskEndCB; music_tempo=2.5; bible=FileRead(bible_filename,&size); "$$WW+H,1$$"; try { + task=PopUpViewStr( + "$$WW,1$$This shows a random passage based on " + "the time at the moment this song was run. " + "Talk to God as an offering, then run $MA+A-X+PU,"AfterEgypt","Cd(\"::/TempleOS/Apps/AfterEgypt\");;#include \"Run\"\\n"$ if you " + "want God to talk some more. The $LK,"Holy Spirit","FI:::/TempleOS/Apps/HolySpirit/HSNotes.TXT"$ can " + "puppet you.\n"); + TaskWait(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); + DocRecalc(DocCur(task)); //Reformat word-wrap with new window size. while (!ScanKey) { PutVerse; Play("3qAeABCBqCetABBqCetAAREE2G"); diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/villa.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/villa.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/villa.CPP diff --git a/SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP similarity index 95% rename from SparrowOS/Apps/MusicOrgan/Examples/wisdom.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP index c20d7622e827782d2ecb72ad286edfd7914713f4..450bdfb80525a94cb6cfbc40af730ad6f01ce076 100644 GIT binary patch delta 13 UcmZqYZRMR1KQX~{g03&h*c>n+a delta 17 YcmZqWZRed3&*(fc-jvaKwin_right=Fs->win_right; - task->win_left=Fs->win_left; - task->win_top=Fs->win_bottom+3; - task->win_bottom=task->win_top+12; - TaskDerivedValsUpdate(task); + SetWinHorz(Fs->win_left,Fs->win_right,task); + SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task); while (!ScanKey) { Play("2qG3sFEFEqDBEetCB2G3qFsBDBD", " \0Damn \0 \0 \0 \0 \0 \0fig \0 \0 \0 \0tree.\n\0 \0 \0 \0 \0"); diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/worship.CPP similarity index 52% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/worship.CPP index 2ef0800..06991a7 100644 --- a/SparrowOS/Accts/TS/TAD/MusicOrgan/worship.CPP +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/worship.CPP @@ -1,4 +1,4 @@ -//7 no nothing +//7 has words U0 Song() { Fs->task_end_cb=&SndTaskEndCB; @@ -7,9 +7,11 @@ U0 Song() music_stacatto_factor= 0.902; try { while (!ScanKey) { - Play("W13qEDeCC!etEAAqEetCDCA!!GFqG"); + Play("W13qEDeCC!etEAAqEetCDCA!!GFqG", + "I \0don't \0know \0 \0 \0 \0 \0 \0 \0 \0what \0 \0to \0 \0pray.\n\0"); Play("EDeCC!etEAAqEetCDCA!!GFqG"); - Play("eGEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE"); + Play("eGEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE", + "It's \0a \0blah \0 \0 \0day.\n\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0"); Play("GEetFDAqF!sGF!GF!G!!FG!F!etBGFqGeDE"); } } catch diff --git a/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP new file mode 100644 index 0000000..3fee8e5 --- /dev/null +++ b/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP @@ -0,0 +1,20 @@ +//0 no nothing +U0 Song() +{ + Fs->task_end_cb=&SndTaskEndCB; + MusicSettingsRst; + music_tempo= 2.480; + music_stacatto_factor= 0.846; + try { + while (!ScanKey) { + Play("W13sEAE!AqE!!eFsG!A!qFsF!G!!eE2qG!3sFEFEqA"); + Play("sEAE!AqE!!eFsG!A!qFsF!G!!eE2qG!3sFEFEqA"); + Play("EeGDqBeCE!2qG3etDG!!C!!eEAFA"); + Play("qEeGDqBeCE!2qG3etDG!!C!!eEAFA"); + } + } catch + CatchAll; + Snd(0); +} + +Song; diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/you.CPP similarity index 100% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/you.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/you.CPP diff --git a/SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP b/TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP similarity index 78% rename from SparrowOS/Accts/TS/TAD/MusicOrgan/zip.CPP rename to TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP index 593d501c96a0a77d4049a2f647d5eb57ef6a0780..7743a605fc7f7550d3055c36c135c7ae61ba6c05 100644 GIT binary patch delta 255 zcmX>jJWY7Q!ikIAHolz47$2Nk5}ujokzZ7$;a03`SDu*{pOczaq66a;Wu|A8=#(TD zXKPw>DJUo?Ks1D<7L~v?B;}WsoCW2si?TQ>jb&FsHjZtW-d_h z%P&!gF(}DMRfsXj&df_!h%v}dQ;0FhOD#$%){DuTyq;NVvKdPe2S}faN=)8lLl$%A z@QlO~dxaPSg&2d7)SMg$D>qdU!hn#T#SmH{#-KPqHx*u=zF1Y8C)cli +* Cursor is not solid $LK,"Dbg","MN:Dbg"$ when entered in Adam2. -* Why is bitmap different from vector in $LK,"Logo","FI:::/SparrowOS/Accts/TS/TAD/Archive/Logo.TXT.Z"$? +* ata base- base1 temp blkdev -* Hangs after pressing Compile MAIN in menu. +* clean-up addDev pmt + +* indent + +* TestSuite Strut + +* Might want to convert some Preempt() to Cli + +* Bug: Back-up-script cause jumps back and forth in ToHtml. + +* Bug? Hung after pressing CmpMain in personal menu. Haven't seen in a while. * Crashes after back-up-script. Went away maybe after spurious IRQ fix. -* Might be same as last one. Back-up-script cause jumps back and forth in ToHtml -* Music organ hangs when cursoring around. +* Music organ hangs when cursoring around. Haven't seen in while. -* $LK,"DocUpdateTaskDocs","MN:DocUpdateTaskDocs"$() skips locked docs. $LK,"WinMgrSync","MN:WinMgrSync"$() needs to check. +* $LK,"DocUpdateTaskDocs","MN:DocUpdateTaskDocs"$() used to skips locked docs. $LK,"WinMgrSync","MN:WinMgrSync"$() needs to check? -* Why is wordstat so slow on "OldMasterBootWrite" for example. +* Why was wordstat so slow on "OldMasterBootWrite" for example. * $LK,"Plain","MN:Plain"$() might be better not saving $LK,"CH_CURSOR","MN:CH_CURSOR"$. @@ -27,27 +36,26 @@ * make aware of ctrl-r side bar -* fix problem -- remembering 0 terminator in str or not for $$DA +* fix documentation problem -- remembering 0 terminator in str or not for $$DA * GetS, crazy putkey code -* editor page formatting +* editor page formatting is FUBAR * $LK,"gr_screen_image","MN:gr_screen_image"$ >Might want to do ZOOM in U8 graphics and convert screen capture to U8 >Might want to reverse bit order -* wenceslas crashes in testsuite, sometimes +* wenceslas crashes in testsuite, sometimes. went away? -* CGrVectMap sucks +* CGrVectMap sucks -- Pilgrim * return vals for grrect, grblot, grputchar? * collisions for grrect, grblot, grputchar? * 32-bit devices should be in free spot address space of E820. -* RAM drive too small for SparrowOSCD.ISO +* RAM drive too small for TempleOSCD.ISO $WW,1$ * Race condition in Navy.CPP.Z torpedo -* Logrep throw for out-of-mem? * {Lock|Rep}{Seg|2E=NotBr|3E=Br}{OP}{ADD}{REX} * Virtual Box MP reboot * Std local var names @@ -70,7 +78,7 @@ extern of fun with dft arg of str? * FileMgr bad with lots of files. -* This $LK,"Fs->catch_except=TRUE","FF:::/SparrowOS/OSMain/TaskCmd.CPP.Z,Fs->catch_except=TRUE"$ causes problems because it catches divide and out-of-mem. Not sure what to do, yet. +* This $LK,"Fs->catch_except=TRUE","FF:::/TempleOS/Kernel/TaskCmd.CPP,Fs->catch_except=TRUE"$ causes problems because it catches divide and out-of-mem. Not sure what to do, yet. * $LK,"MPStart","MN:MPStart"$() free old task memory. (Prolly never gonna do anything about this.) * $LK,"sys_var_init_flag","MN:sys_var_init_flag"$ local vars. * sprite shift pts, ctrl pt for ellipse/polygon w,h is off when rotated. @@ -83,8 +91,8 @@ This shit: $HC,""$ -* $LK,"Bible sized nodes","FF:::/SparrowOS/Adam/Doc/DocRecalc.CPP.Z,->tag+i"$ -* Mouseinstall throws exceptions, doesn't work, investigate Mouse $LK,"0x9FC30","FF:::/SparrowOS/OSMain/KbdMouse/Mouse.CPP.Z,9FC"$ +* $LK,"Bible sized nodes","FF:::/TempleOS/Adam/Doc/DocRecalc.CPP,->tag+i"$ +* Mouseinstall throws exceptions, doesn't work, investigate Mouse $LK,"0x9FC30","FF:::/TempleOS/Kernel/KbdMouse/Mouse.CPP,9FC"$ * get kbd lights working. * figure-out hyperthread vs nonhyperthread CPU's * Might have issue with compiler exceptions and restoring lex.hash tables. @@ -114,8 +122,8 @@ $HC,"1 is broken. @@ -182,5 +190,4 @@ $HC,"catch_except=TRUE; + Free(m); + return result; +} + +I64 DrvMaxBlk(U8 drv_let) +{ + I64 result=0; + CBlkDev *bdev; + try { + if (bdev=Drv2BlkDev(drv_let)) + result=bdev->max_blk; + } catch + Fs->catch_except=TRUE; + return result; +} + +I64 IsDrvATAPI(U8 drv_let) +{ + Bool result=FALSE; + CBlkDev *bdev; + try if ((bdev=Drv2BlkDev(drv_let)) && + bdev->type==BDT_ATAPI) + result=TRUE; + catch + Fs->catch_except=TRUE; + return result; +} + +Bool ChkDrvModelSerial(U8 drv_let,U8 *model,U8 *serial) +{ + Bool result; + U8 *m=NULL,*s=NULL; + try { + m=DrvModelNum(drv_let); + s=DrvSerialNum(drv_let); + } catch { + Free(m); Free(s); + m=NULL; s=NULL; + Fs->catch_except=TRUE; + } + if (m && s && !StrCmp(m,model) && !StrCmp(s,serial)) + result=TRUE; + else + result=FALSE; + Free(m); Free(s); + return result; +} + #define CID_DFT 0 -#define CID_TAD8 1 +#define CID_TAD8 1 //This was my old machine but it died. Booted natively +#define CID_TAD8_VM 2 //It could run booted with physical drive in VMware +//My current machine is TAD9 but it only runs in VMware, so it's CID_DFT I64 ts_cid=CID_DFT; -#include "::/SparrowOS/Accts/TS/TSIDComputer" - -U0 VMDrvs(CATARep *root,CATARep **_ata_drv,CATARep **_atapi_drv) +U0 TSIDComputer() { - CBlkDev *bd=Drv2BlkDev(dft_drv); - CATARep *tempha=root,*ata_drv=NULL,*atapi_drv=NULL; - Bool found_atapi=FALSE; - while (tempha) { - 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 (!found_atapi) { - if (bd && tempha->base0==bd->base0 && tempha->unit==bd->unit) { - atapi_drv=tempha; - found_atapi=TRUE; - } else if (!atapi_drv || tempha->unitunit || - tempha->unit==atapi_drv->unit && tempha->numnum) - atapi_drv=tempha; - } - } - tempha=tempha->next; - } - if (_ata_drv) *_ata_drv =ata_drv; - if (_atapi_drv) *_atapi_drv=atapi_drv; -} +/* My TAD8 computer died. It had two hard drives. You could +boot it directly or from VMware with a physical drive. + + + CMemE820 *m20=SYS_MEM_E820; + if (IsDrvVMware('D') && DrvMaxBlk('D')==0x575466EF) + ts_cid=CID_TAD8_VM; //VMware boot of TAD8 + else if (ChkDrvModelSerial('D',"Hitachi HDS721075KLA330","GTF202P8H509AF") && + ChkDrvModelSerial('I',"ST3320620AS","6QF24J0A")) + ts_cid=CID_TAD8; //Regular boot of TAD8 + else if (dft_drv=='T' && IsDrvATAPI('T') && m20[11].base==0x100000000 && + m20[11].base(I64)+m20[11].len-1==0x33FFFFFFF) + ts_cid=CID_TAD8; //CDROM boot of TAD8 + +*/ +} TSIDComputer; U0 TSInit() { - //TS_TRA_DRV is for transfering files to dual booted OS's //TS_IMG_DRV is for the holding area for burning CDROMs CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL; - CBlkDev *bd; + CBlkDev *bdev; switch (ts_cid) { +/* This machine died, but you can use it as an example. + case CID_TAD8: + case CID_TAD8_VM: DefinePrintF("CFG_ACCT","\"\nTS/TAD\n\""); DefinePrintF("CFG_HARD_DRVS","\"h2s0xbc00\n0xb880\n1d2s0xbc00\n0xb880\n0\""); DefinePrintF("CFG_RAM_DRVS","\"b1Scale2Mem(2048,0x40000)\nz1Scale2Mem(2048,0x40000)\n\""); DefinePrintF("CFG_CDROM_DRVS","\"t3s0xb800\n0\""); DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); - DefinePrintF("TS_HDS","\"DEI\""); - DefinePrintF("TS_MASTER_BOOT_DRVS","\"I\""); + if (ts_cid==CID_TAD8) { + DefinePrintF("TS_HDS","\"DEI\""); + DefinePrintF("TS_MASTER_BOOT_DRVS","\"I\""); + } else { //CID_TAD8_VM + DefinePrintF("TS_HDS","\"DE\""); + DefinePrintF("TS_MASTER_BOOT_DRVS","\"\""); + } DefinePrintF("TS_MAIN_DRV","\"D\""); DefinePrintF("TS_BAK_DRV","\"E\""); DefinePrintF("TS_RAM_DRV","\"B\""); - DefinePrintF("TS_TRA_DRV","\"I\""); DefinePrintF("TS_WIN_DRV","\"H\""); DefinePrintF("TS_IMG_DRV","\"Z\""); DefinePrintF("TS_CDROM_DRV","\"T\""); break; - default: +*/ + case CID_DFT: DefinePrintF("CFG_ACCT","\"\nTS/TAD\n\""); - DefinePrintF("CFG_HARD_DRVS","\"d2s0x1F0\n0x3F4\n0\""); DefinePrintF("CFG_RAM_DRVS","\"b1Scale2Mem(2048,0x40000)\nz1Scale2Mem(2048,0x40000)\n\""); - DefinePrintF("CFG_CDROM_DRVS","\"t3s0x170\n0\""); - bd=Drv2BlkDev(dft_drv); - if (bd->type==BDT_ATAPI) { - ATARep(FALSE,&root); - VMDrvs(root,&ata_drv,&atapi_drv); - if (ata_drv) - DefinePrintF("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num); - if (atapi_drv) - DefinePrintF("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num); + if (sys_auto_mount_ide_cnt) { + //If AutoMount was successful, No need to manually mount in next compile + DefinePrintF("CFG_HARD_DRVS","\"\""); + DefinePrintF("CFG_CDROM_DRVS","\"\""); } else { - bd=Drv2BlkDev('D'); - DefinePrintF("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"", - bd->base0,bd->base1,bd->unit); - bd=Drv2BlkDev('T'); - DefinePrintF("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bd->base0,bd->unit); + + //These two are a crazy guess. ATA:IDE Primary ATAPI:IDE Secondary + DefinePrintF("CFG_HARD_DRVS","\"d2s0x1F0\n0x3F4\n0\""); + DefinePrintF("CFG_CDROM_DRVS","\"t3s0x170\n0\""); + + bdev=Drv2BlkDev(dft_drv); + if (bdev->type==BDT_ATAPI) { + ATARep(FALSE,,&root); + ATAIDDrvs(root,dft_drv,&ata_drv,&atapi_drv); + if (ata_drv) + DefinePrintF("CFG_HARD_DRVS","\"d2p%d\n\"",ata_drv->num); + if (atapi_drv) + DefinePrintF("CFG_CDROM_DRVS","\"t3p%d\n\"",atapi_drv->num); + } else { + try { + bdev=Drv2BlkDev('D'); + DefinePrintF("CFG_HARD_DRVS","\"d2s0x%X\n0x%X\n%d\"", + bdev->base0,bdev->base1,bdev->unit); + } catch + Fs->catch_except=TRUE; + try { + bdev=Drv2BlkDev('T'); + DefinePrintF("CFG_CDROM_DRVS","\"t3s0x%X\n%d\"",bdev->base0,bdev->unit); + } catch + Fs->catch_except=TRUE; + } } DefinePrintF("CFG_DSK_CACHE","\"Scale2Mem(0x80000,0x8000000)\n\""); - DefinePrintF("TS_HDS","\"DEF\""); + DefinePrintF("TS_HDS","\"DE\""); DefinePrintF("TS_MASTER_BOOT_DRVS","\"D\""); DefinePrintF("TS_MAIN_DRV","\"D\""); DefinePrintF("TS_BAK_DRV","\"E\""); DefinePrintF("TS_RAM_DRV","\"B\""); - DefinePrintF("TS_TRA_DRV","\"F\""); DefinePrintF("TS_WIN_DRV","\"\""); DefinePrintF("TS_IMG_DRV","\"Z\""); DefinePrintF("TS_CDROM_DRV","\"T\""); @@ -90,7 +162,6 @@ U0 TSInit() Bool ts_has_main_drv =ToBool(StrLen(TS_MAIN_DRV)), ts_has_bak_drv =ToBool(StrLen(TS_BAK_DRV)), ts_has_ram_drv =ToBool(StrLen(TS_BAK_DRV)), - ts_has_tra_drv =ToBool(StrLen(TS_TRA_DRV)), ts_has_win_drv =ToBool(StrLen(TS_WIN_DRV)), ts_has_img_drv =ToBool(StrLen(TS_IMG_DRV)), ts_has_cdrom_drv=ToBool(StrLen(TS_CDROM_DRV)); @@ -100,7 +171,6 @@ U0 TSInit2() DefinePrintF("TS_MAIN_DRV_LET","'%s'",TS_MAIN_DRV); DefinePrintF("TS_BAK_DRV_LET","'%s'",TS_BAK_DRV); DefinePrintF("TS_RAM_DRV_LET","'%s'",TS_RAM_DRV); - DefinePrintF("TS_TRA_DRV_LET","'%s'",TS_TRA_DRV); DefinePrintF("TS_WIN_DRV_LET","'%s'",TS_WIN_DRV); DefinePrintF("TS_IMG_DRV_LET","'%s'",TS_IMG_DRV); DefinePrintF("TS_CDROM_DRV_LET","'%s'",TS_CDROM_DRV); @@ -112,8 +182,6 @@ if (ts_has_bak_drv) SetDrvTextAttr(TS_BAK_DRV_LET, WHITE <<4|RED); if (ts_has_ram_drv) SetDrvTextAttr(TS_RAM_DRV_LET, BLUE <<4|YELLOW); -if (ts_has_tra_drv) - SetDrvTextAttr(TS_TRA_DRV_LET, WHITE <<4|BROWN); if (ts_has_win_drv) SetDrvTextAttr(TS_WIN_DRV_LET, LTRED <<4|BLACK); if (ts_has_img_drv) @@ -121,29 +189,32 @@ if (ts_has_img_drv) if (ts_has_cdrom_drv) SetDrvTextAttr(TS_CDROM_DRV_LET,LTGRAY<<4|BLUE); -#define TS_ISO_NAME TS_RAM_DRV ":/SparrowOSCD.ISO" +#define TS_ISO_NAME TS_RAM_DRV ":/TempleOSCD.ISO" -#define CFG_OPTS "ProtectLow\n\n" -#define CFG_DBG_OPTS "ProtectLow\nDet\nHeapInit\n130\nMemInit\n131\nVarInit\n132\n\n" -#define CFG_DBGZ_OPTS "ProtectLow\nDet\nHeapInit\n0\nMemInit\n0\nVarInit\n0\n\n" +#define CFG_OPTS "ProtectLow\nAutoMountIDE\nDT\n" +#define CFG_DBG_OPTS "ProtectLow\nAutoMountIDE\nDTDet\nHeapInit\n130\nMemInit\n131\nVarInit\n132\n\n" +#define CFG_DBGZ_OPTS "ProtectLow\nAutoMountIDE\nDTDet\nHeapInit\n0\nMemInit\n0\nVarInit\n0\n\n" #define TS_CFG CFG_RAM_DRVS CFG_CDROM_DRVS CFG_HARD_DRVS CFG_ACCT CFG_DSK_CACHE CFG_OPTS #define TS_MENU_CFG CFG_RAM_DRVS CFG_CDROM_DRVS CFG_HARD_DRVS "\n\n" CFG_DSK_CACHE CFG_OPTS -#define TS_CDROM_CFG "b10x20000\nt3 \n\nTS\n\n\n" +#define TS_CDROM_CFG "b10x20000\nt3 \n\nTS\n\nAutoMountIDE\nDT\n" //$BK,1$Change these, too...$BK,0$ -//$MA+A-X+PU,"PROD_CDROM_CFG","F(\"PROD_CDROM_CFG\");View;"$ -//$LK,"Install Acct","FF:::/SparrowOS/Accts/Install/DoItOnce.CPP.Z,InstallBoot"$ +//$MA+A-X+PU,"STD_DISTRO_CDROM_CFG","F(\"STD_DISTRO_CDROM_CFG\");View;"$ +//$LK,"Install Acct","FF:::/TempleOS/Accts/Install/DoItOnce.CPP,MakeOSInstallPrtBootLoader"$ U0 CtrlAltR(I64) { - snd_record=!snd_record; + static F64 last_time=0; + if (tT-last_time>1.0) { + last_time=tT; + wallpaper_record_on=snd_record=!snd_record; + } } SetCtrlAltLetCB('R',&CtrlAltR,"Toggle snd_record"); -Bool frame_grabber_paused=FALSE, - frame_grabber_on=FALSE; +Bool frame_grabber_on=FALSE; public U0 MyScreenShot(I64 bits=4) { @@ -161,72 +232,87 @@ public U0 MyScreenShot(I64 bits=4) Beep; } -//This is the max rate for Windows Movie Maker. #define VIDEO_FRAME_RATE 8 -#exe { - if (ts_cid==CID_TAD8) - StreamPutS("#define FRAME_DIR_CNT 600\n"); - else - StreamPutS("#define FRAME_DIR_CNT 200\n"); -}; - U0 FrameGrabberTask(I64) { + +/**** TO MAKE MOVIE **** + +TempleOS + + [Do stuff you want recorded] + + +Boot Windows + Copy /Temp + Download "ffmpeg" from the Internet + + >CD SCREENSHOTS + >TSZ -expand . + >ffmpeg -r 8 -i VID%05d.BMP -y Movie.avi + +*/ + I64 frame_num=0; - I64 buf[136],buf2[136],buf3[136]; - F64 end_time=tNP,f; + U8 buf[136],buf2[136]; + F64 end_time=tT,f; TaskInitExt; Silent(ON); //no output to screen + MkDir("::/Temp/ScreenShots"); while (frame_grabber_on) { - SPrintF(buf2,"::/Temp/ScreenShots/V%03d",frame_num/FRAME_DIR_CNT); - MkDir(buf2); - SPrintF(buf,"%s/VID%05d.BMP.Z",buf2,frame_num%FRAME_DIR_CNT); - frame_num++; - Suspend(sys_winmgr_task,FALSE); + SPrintF(buf,"::/Temp/ScreenShots/VID%05d.BMP.Z",frame_num++); + StrCpy(buf2,buf); BMPFileCaptureScreen(buf); - Suspend(sys_winmgr_task); - StrCpy(buf3,buf); - f=tNP; + f=tT; while (end_timetask_flags,TASKf_IDLE); while (sys_cur_scan_code&SCF_NUM) { - Suspend(sys_winmgr_task,FALSE); Yield; - end_time=tNP; + end_time=tT; } - while (end_time>tNP) { - Suspend(sys_winmgr_task,FALSE); + while (end_time>tT) Yield; - } LBtr(&Fs->task_flags,TASKf_IDLE); } - Suspend(sys_winmgr_task,FALSE); +} + +U0 CopyVideo() +{ + if (ts_has_bak_drv) { + Del(TS_BAK_DRV ":/Temp/*.SND"); + SndFileCreate(TS_BAK_DRV ":/Temp/Audio",0.23,0.0,WF_NULL,0.45,0.35); + DelTree(TS_BAK_DRV ":/Temp/ScreenShots"); + CopyTree("::/Temp/ScreenShots",TS_BAK_DRV ":/Temp/ScreenShots"); + } } public U0 FrameGrabberToggle() { - if (frame_grabber_on) { - IOSnd(ON); - frame_grabber_on=FALSE; - Snd(0); - snd_record=FALSE; - } else { - IOSnd(OFF); //You don't want to hear screen capture file writes - frame_grabber_on=TRUE; - Spawn(&FrameGrabberTask,NULL,"Frame Grabber"); - snd_record=TRUE; - Snd(0); + static F64 last_time=0; + if (tT-last_time>1.0) { + last_time=tT; + if (frame_grabber_on) { + IOSnd(ON); + frame_grabber_on=FALSE; + Snd(0); + wallpaper_record_on=snd_record=FALSE; + Sleep(1000); + CopyVideo; + } else { + IOSnd(OFF); //You don't want to hear screen capture file writes + frame_grabber_on=TRUE; + Spawn(&FrameGrabberTask,NULL,"Frame Grabber"); + wallpaper_record_on=snd_record=TRUE; + Snd(0); + } } } @@ -242,53 +328,6 @@ U0 CtrlAltS(I64) } SetCtrlAltLetCB('S',&CtrlAltS,"Cmd/Screen Shot"); -public U0 MBRRep(U8 drv_let='C') -{ - CBlkDev *bdev=Drv2BlkDev(drv_let); - I64 type,i,j,ext_base; - I64 offset; - CMasterBoot mbr; - - if (bdev->type!=BDT_ATA) - return; - drv_let=bdev->drv_let_base; - offset=0; - ext_base=INVALID_CLUSTER; - while (TRUE) { - ATAReadBlks(bdev,&mbr,offset,1); - "$$FG,PURPLE$$Blk:%08X$$FG$$\n",offset; - ClassRep("CMasterBoot",&mbr); - if (mbr.signature!=0xAA55) - break; - j=-1; - for (i=0;i<4;i++) { - "$$FG,CYAN$$ Entry #%d$$FG$$\n",i; - if (mbr.p[i].active||mbr.p[i].type) - ClassRep("CMBRPrt",&mbr.p[i]); - if (mbr.p[i].type) { - type=mbr.p[i].type; - "$$FG,RED$$%C Offset:%08X Size:%08X Type:%X$$FG$$\n", - drv_let,mbr.p[i].offset+offset, - mbr.p[i].size,type; - if (type==5 || type==0xF) - j=i; - else - drv_let++; - } - } - if (j<0) - break; - if (!mbr.p[j].offset) - break; - if (ext_base==INVALID_CLUSTER) { - offset=mbr.p[j].offset; - ext_base=offset; - } else - offset=mbr.p[j].offset+ext_base; - } -} - - public U0 Abbr(U8 *word,U8 *abbr) { U8 buf1[136],buf2[136]; @@ -297,15 +336,15 @@ public U0 Abbr(U8 *word,U8 *abbr) StrUtil(buf1,SUF_TO_LOWER); StrUtil(buf2,SUF_TO_LOWER); - Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + Grep(buf1,"/TempleOS/"FILENAME_MASK_TXT,"-l-i",buf2); *buf1=ToUpper(*buf1); *buf2=ToUpper(*buf2); - Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + Grep(buf1,"/TempleOS/"FILENAME_MASK_TXT,"-l-i",buf2); StrUtil(buf1,SUF_TO_UPPER); StrUtil(buf2,SUF_TO_UPPER); - Grep(buf1,"/SparrowOS/"TEXT_FILE_MASK,"-l-i",buf2); + Grep(buf1,"/TempleOS/"FILENAME_MASK_TXT,"-l-i",buf2); } public U0 ChkAll() @@ -322,9 +361,8 @@ public U0 MyHAllRep(U8 *flags="-p",U8 *index=NULL) public CDoc *DC2Doc(CDC *dc,I64 dx=0,I64 dy=0,I64 *_total_score=NULL) { - I64 *ptr; U8 byte_bit_cnts[256],st[2]; - I64 i,j,row,col,ch,best_ch,score,best_score,cur_char_image,diff_image,total_score=0; + I64 i,j,*ptr,row,col,ch,best_ch,score,best_score,cur_char_image,diff_image,total_score=0; CDoc *doc=DocNew; MemSet(st,0,sizeof(st)); @@ -396,18 +434,3 @@ public U0 BMP2TXT(U8 *_in_name,U8 *_out_name=NULL) Free(in_name); Free(out_name); } - - -U0 CopyVideo() -{ - U8 *st; - if (ts_has_tra_drv) { - Del(TS_TRA_DRV ":/Temp/*.SND"); - st=MSPrintF("#include \"::/SparrowOS/Apps/MusicOrgan/Load\";" - "SndFileCreate(\"" TS_TRA_DRV ":/Temp/Audio\",0.23,0.0,WF_NULL,0.45,0.35);"); - PopUp(st); - Free(st); - DelTree(TS_TRA_DRV ":/Temp/ScreenShots"); - CopyTree("::/Temp/ScreenShots",TS_TRA_DRV ":/Temp/ScreenShots"); - } -} diff --git a/SparrowOS/Demo/AcctExample/TSDistribute.CPP b/TempleOS/Accts/TS/TSDistro.CPP similarity index 52% rename from SparrowOS/Demo/AcctExample/TSDistribute.CPP rename to TempleOS/Accts/TS/TSDistro.CPP index 247234c..831557d 100644 --- a/SparrowOS/Demo/AcctExample/TSDistribute.CPP +++ b/TempleOS/Accts/TS/TSDistro.CPP @@ -1,12 +1,13 @@ -//The CFG defines are $LK,"Here","FI:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z"$. +//The CFG defines are $LK,"Here","FI:::/TempleOS/Demo/AcctExample/TSAdam.CPP"$. U0 ShowBootFileDate(U8 drv_let) { CDirEntry de; - U8 *name=MSPrintF("%c:/OSMain.BIN.C",drv_let); - if (FileFind(name,&de)) + U8 *name=MSPrintF("%c:/Kernel.BIN.C",drv_let); + if (FileFind(name,&de)) { + Free(de.full_name); "%s %D %T\n",name,de.datetime,de.datetime; - else + } else "%s\n",name; Free(name); } @@ -18,7 +19,7 @@ U0 ShowBootFiles() ShowBootFileDate(*ptr++); } -U8 DrvMySelect() +U8 TSPmtDrv() { I64 result; ShowBootFiles; @@ -28,63 +29,27 @@ U8 DrvMySelect() return result; } -U0 CmpDrv(U8 drv_let) +U0 TSMakeOSInstallPrtBootLoader(U8 drv_let) { drv_let=ToUpper(drv_let); Auto(TS_CFG); - InstallBoot(drv_let); + MakeOSInstallPrtBootLoader(drv_let); if (StrOcc(TS_MASTER_BOOT_DRVS,drv_let)) - InstallMasterBoot(drv_let); + InstallMasterBootLoader(drv_let); } -U0 QMenuBoot(U8 drv_let=0) +U0 SoftBootMenu(U8 drv_let=0) { if (!drv_let) drv_let=Prt2Drv(Fs->cur_prt); Drv(drv_let); - Cd("/SparrowOS/OSMain"); + Cd("/TempleOS/Kernel"); Auto(TS_MENU_CFG); - if (!Cmp("OSMain","OSMain",NULL,':')) - Boot("OSMain.BIN.Z"); + if (!Cmp("Kernel","Kernel",NULL,':')) + SoftBoot("Kernel.BIN.Z"); } -U0 UpdateAndCompile(U8 src,U8 dst) -{ - U8 buf_s[128],buf_d[128]; - if (src==dst) return; - - SPrintF(buf_s,"%c:/SparrowOS",src); - SPrintF(buf_d,"%c:/SparrowOS",dst); - CopyTree(buf_s,buf_d); - CmpDrv(dst); -} - -U0 PromptUpdateDrv() -{ - U8 src,dst; - "\nSrc Drive:\n"; - src=DrvMySelect; - "\nDst Drive:\n"; - dst=DrvMySelect; - UpdateAndCompile(src,dst); - ShowBootFiles; - Drv(src); -} - -U0 MyMerge() -{ - U8 src,dst,buf_s[128],buf_d[128]; - "\nMerge Src Drive:\n"; - src=DrvMySelect; - "\nMerge Dst Drive:\n"; - dst=DrvMySelect; - SPrintF(buf_s,"%c:/SparrowOS/*",src); - SPrintF(buf_d,"%c:/SparrowOS/*",dst); - MergeChk(buf_d,buf_s,"+r+d"); - Drv(dst); -} - -U0 MyCopyDrv(U8 src,U8 dst) +U0 TSCopyDrv(U8 src,U8 dst) { U8 buf_s[128],buf_d[128]; src=ToUpper(src); @@ -92,8 +57,8 @@ U0 MyCopyDrv(U8 src,U8 dst) Fmt(dst,TRUE,FALSE,PT_FAT32); - SPrintF(buf_s,"%c:/SparrowOS",src); - SPrintF(buf_d,"%c:/SparrowOS",dst); + SPrintF(buf_s,"%c:/TempleOS",src); + SPrintF(buf_d,"%c:/TempleOS",dst); CopyTree(buf_s,buf_d); SPrintF(buf_s,"%c:/Windows",src); @@ -114,25 +79,25 @@ U0 MyCopyDrv(U8 src,U8 dst) SPrintF(buf_d,"%c:/Temp/ScreenShots",dst); MkDir(buf_d); - if (ts_has_tra_drv && dst==TS_TRA_DRV_LET) { + if (ts_has_bak_drv && dst==TS_BAK_DRV_LET) { SPrintF(buf_d,"%c:/Logs",dst); MkDir(buf_d); - SPrintF(buf_d,"%c:/Logs/SPARROWOSLogs",dst); + SPrintF(buf_d,"%c:/Logs/TEMPLEOSLogs",dst); MkDir(buf_d); } DocClear; Drv(dst); - CmpDrv(dst); + TSMakeOSInstallPrtBootLoader(dst); } -U0 PmtMyCopyDrv() +U0 TSPmtCopyDrv() { U8 src,dst; "$$FG,RED$$\nCopy Src Drive:\n$$FG$$"; - src=DrvMySelect; + src=TSPmtDrv; "$$FG,RED$$\nCopy Dst Drive:\n$$FG$$"; - dst=DrvMySelect; - MyCopyDrv(src,dst); + dst=TSPmtDrv; + TSCopyDrv(src,dst); } public U0 FileCursorRem(U8 *filename) @@ -155,12 +120,12 @@ public U0 FileCursorTop(U8 *filename) public U0 FilesCursorRem(U8 *mask="*") { I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+t+f+F"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); CDirEntry *tempm=FilesFind(mask,fuf_flags),*tempm1; while (tempm) { tempm1=tempm->next; FileCursorRem(tempm->full_name); - Touch(tempm->full_name,"","",tempm->datetime); + Touch(tempm->full_name,"",,tempm->datetime); CDirEntryDel(tempm); tempm=tempm1; } @@ -169,12 +134,12 @@ public U0 FilesCursorRem(U8 *mask="*") public U0 FilesCursorTop(U8 *mask="*") { I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+t+f+F"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T+f+F"); CDirEntry *tempm=FilesFind(mask,fuf_flags),*tempm1; while (tempm) { tempm1=tempm->next; FileCursorTop(tempm->full_name); - Touch(tempm->full_name,"","",tempm->datetime); + Touch(tempm->full_name,"",,tempm->datetime); CDirEntryDel(tempm); tempm=tempm1; } @@ -188,7 +153,7 @@ U0 UncollapseFile(U8 *filename,I64 *) DocDel(doc); } -U0 UncollapseList(CDirEntry *tempm1,I64 *flags) +U0 UncollapseLst(CDirEntry *tempm1,I64 *flags) { CDirEntry *tempm2; while (tempm1 && !Bt(flags,FUf_CANCEL)) { @@ -196,7 +161,7 @@ U0 UncollapseList(CDirEntry *tempm1,I64 *flags) if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) { "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - UncollapseList(tempm1->sub,flags); + UncollapseLst(tempm1->sub,flags); } } else UncollapseFile(tempm1->full_name,flags); @@ -205,12 +170,12 @@ U0 UncollapseList(CDirEntry *tempm1,I64 *flags) } } -U0 Uncollapse(U8 *files_find_mask=TEXT_FILE_MASK,U8 *fu_flags=NULL) +U0 Uncollapse(U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL) { I64 f=0; GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r"); GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - UncollapseList(FilesFind(files_find_mask,f),&f); + UncollapseLst(FilesFind(files_find_mask,f),&f); } U0 CopySongDir(U8 *files_find_mask,U8 threshold) @@ -223,64 +188,65 @@ U0 CopySongDir(U8 *files_find_mask,U8 threshold) s=DocRead(tempm1->full_name); doc_e=s->root.next; if (doc_e->type_u8==DOCT_TEXT && doc_e->tag[2]>=threshold) - Copy(tempm1->full_name,"/SparrowOS/Apps/MusicOrgan/Examples"); + Copy(tempm1->full_name,"/TempleOS/Apps/MusicOrgan/Examples"); tempm1=tempm1->next; } - CDirListDel(tempm); + CDirLstDel(tempm); } public U0 CopySongs(U8 threshold='7') { - DelTree("/SparrowOS/Apps/MusicOrgan/Examples"); - MkDir("/SparrowOS/Apps/MusicOrgan/Examples"); - CopySongDir("/SparrowOS/Accts/TS/TAD/MusicOrgan/*.CPP.Z",threshold); + DelTree("/TempleOS/Apps/MusicOrgan/Examples"); + MkDir("/TempleOS/Apps/MusicOrgan/Examples"); + CopySongDir("/TempleOS/Accts/TS/TAD/MusicOrgan/*.CPP*",threshold); } -U0 PrepForDistribution() +U0 DistroPrep() { - Del("/SparrowOS/Demo/WebLogExample/WebLog.TXT.Z"); - Del("/SparrowOS/Demo/GameStarters/EagleDive.BIN.Z"); - DelTree("/SparrowOS/Accts/*Temp.TXT.Z"); + Del("/TempleOS/Demo/WebLogExample/WebLog.TXT*"); + Del("/TempleOS/Demo/GameStarters/EagleDive.BIN*"); + DelTree("/TempleOS/Accts/*Temp.TXT.Z"); CopySongs; //User - Del("/SparrowOS/Accts/User/Registry.CPP.Z"); + Del("/TempleOS/Accts/User/Registry.CPP.Z"); //Install - Del("/SparrowOS/Accts/Install/Registry.CPP.Z"); + Del("/TempleOS/Accts/Install/Registry.CPP.Z"); //SafeMode - Del("/SparrowOS/Accts/SafeMode/Registry.CPP.Z"); + Del("/TempleOS/Accts/SafeMode/Registry.CPP.Z"); - Touch("/SparrowOS/Accts/PersonalMenu.TXT.Z","+T"); + Touch("/TempleOS/Accts/PersonalMenu.TXT.Z","+T"); //TS - Touch("/SparrowOS/Accts/TS/PersonalMenu.TXT.Z","+T"); + Touch("/TempleOS/Accts/TS/PersonalMenu.TXT.Z","+T"); - DelTree("/SparrowOS/Demo/AcctExample"); - CopyTree("/SparrowOS/Accts/TS","/SparrowOS/Demo/AcctExample"); - DelTree("/SparrowOS/Demo/AcctExample/TAD/MusicOrgan"); - DelTree("/SparrowOS/Demo/AcctExample/Wb2"); - Del("/SparrowOS/Demo/AcctExample/TAD/Test*"); + DelTree("/TempleOS/Demo/AcctExample"); + CopyTree("/TempleOS/Accts/TS","/TempleOS/Demo/AcctExample"); + DelTree("/TempleOS/Demo/AcctExample/TAD/MusicOrgan"); + DelTree("/TempleOS/Demo/AcctExample/Wb2"); + Del("/TempleOS/Demo/AcctExample/TAD/Test*"); - Cd("/SparrowOS"); + Cd("/TempleOS"); FilesCursorTop; - DelTree("/SparrowOS/Demo/*.BI?"); + DelTree("/TempleOS/Demo/*.BI?"); - Cd("/SparrowOS"); - S2T(SRC_FILE_MASK,"+r"); + Cd("/TempleOS"); + S2T(FILENAME_MASK_SRC,"+r"); + DocOpt; Move(WSD_DEF_FILENAME,WSD_DEF_FILENAME_Z); } -U0 PrepForInHouse() +U0 TSDistroPrep() { Drv(TS_MAIN_DRV_LET); - PrepForDistribution; + DistroPrep; Auto(TS_CDROM_CFG); - InstallBoot(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET); + MakeOSInstallPrtBootLoader(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET); Fmt(TS_IMG_DRV_LET,TRUE,FALSE,PT_NATIVE); Drv(TS_IMG_DRV_LET); - CopyTree(TS_MAIN_DRV ":/SparrowOS","/SparrowOS"); + CopyTree(TS_MAIN_DRV ":/TempleOS","/TempleOS"); CopyTree(TS_MAIN_DRV ":/Windows","/Windows"); CopyTree(TS_MAIN_DRV ":/Linux","/Linux"); MkDir("/Temp"); @@ -288,17 +254,17 @@ U0 PrepForInHouse() CopyTree(TS_MAIN_DRV ":/0000Boot","/0000Boot"); } -U0 MakeSymbolFiles() +U0 MakeSymFiles() { CDoc *doc; U8 *st; - if (ts_has_tra_drv) { + if (ts_has_bak_drv) { DocClear; DocMax; HashRep(Fs->hash_table,HTG_ALL,NULL,"-p",0,NULL); if (doc=DocCur) { st=StrNew(doc->filename.name); - StrCpy(doc->filename.name,TS_TRA_DRV ":/Wb/Accts/TS/Wb2/SymbolsAlpha.TXT.Z"); + StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAlpha.TXT.Z"); DocWrite(doc); StrCpy(doc->filename.name,st); Free(st); @@ -308,7 +274,7 @@ U0 MakeSymbolFiles() HashRep(Fs->hash_table,HTG_ALL,NULL,"-p+m",0,NULL); if (doc=DocCur) { st=StrNew(doc->filename.name); - StrCpy(doc->filename.name,TS_TRA_DRV ":/Wb/Accts/TS/Wb2/SymbolsAddress.TXT.Z"); + StrCpy(doc->filename.name,TS_BAK_DRV ":/Wb/Accts/TS/Wb2/SymsAddress.TXT.Z"); DocWrite(doc); StrCpy(doc->filename.name,st); Free(st); @@ -326,30 +292,30 @@ I64 MakeLineCntFile() DocClear; Drv(TS_MAIN_DRV_LET); - PrepForDistribution; + DistroPrep; DocMax; DocClear; - Cd(TS_MAIN_DRV ":/SparrowOS"); + Cd(TS_MAIN_DRV ":/TempleOS"); result=LineCntRep; if (doc=DocCur) { st=StrNew(doc->filename.name); - StrCpy(doc->filename.name,TS_MAIN_DRV ":/SparrowOS/Accts/TS/Wb2/LineCnt.TXT.Z"); + StrCpy(doc->filename.name,TS_MAIN_DRV ":/TempleOS/Accts/TS/Wb2/LineCnt.TXT.Z"); DocWrite(doc); StrCpy(doc->filename.name,st); Free(st); } DocClear; - doc=DocRead(TS_MAIN_DRV ":/SparrowOS/Adam/DocDefines.CPP.Z"); + doc=DocRead(TS_MAIN_DRV ":/TempleOS/Adam/DocDefines.CPP.Z"); DocTreeFind(doc,"LineCnt",&tree_branch,&start_indent,&end_indent); DocCut(doc,start_indent->next,end_indent->last); doc->cur_entry=start_indent->next; doc->cur_data_col=0; - DocPrintF(doc,"DefinePrintF(\"DD_SPARROWOS_LOC\",\"%,d\");\n",result); + DocPrintF(doc,"DefinePrintF(\"DD_TEMPLEOS_LOC\",\"%,d\");\n",result); st=MSPrintF("%,d",result); - DefineLoad("DD_SPARROWOS_LOC",st); + DefineLoad("DD_TEMPLEOS_LOC",st); Free(st); DocWrite(doc); @@ -359,34 +325,34 @@ I64 MakeLineCntFile() return result; } -U0 PrepForProduction(U8 *auto_cfg) +U0 StdDistroPrep(U8 *auto_cfg) { Drv(TS_MAIN_DRV_LET); - PrepForDistribution; + DistroPrep; Auto(auto_cfg); - InstallBoot(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET); + MakeOSInstallPrtBootLoader(TS_MAIN_DRV_LET,TS_CDROM_DRV_LET); Fmt(TS_IMG_DRV_LET,TRUE,FALSE,PT_NATIVE); Drv(TS_IMG_DRV_LET); - CopyTree(TS_MAIN_DRV ":/SparrowOS","/SparrowOS"); + CopyTree(TS_MAIN_DRV ":/TempleOS","/TempleOS"); CopyTree(TS_MAIN_DRV ":/Windows","/Windows"); CopyTree(TS_MAIN_DRV ":/Linux","/Linux"); MkDir("/Temp"); - DelTree("/SparrowOS/Accts/TS"); + DelTree("/TempleOS/Accts/TS"); CopyTree(TS_MAIN_DRV ":/0000Boot","/0000Boot"); Del("/0000Boot/OldMBR.BIN.C"); Del("/0000Boot/BootMHD2.BIN.C"); } -U0 MakeInHouseCDImage() +U0 MakeTSDistro() { - PrepForInHouse; + TSDistroPrep; CDFileCreate(TS_ISO_NAME,TS_IMG_DRV ":/*",NULL,BOOTCD_BIN_Z); Drv(TS_MAIN_DRV_LET); } -U0 MakeProductionCDImage() +U0 MakeStdDistro() { - PrepForProduction(PROD_CDROM_CFG); + StdDistroPrep(STD_DISTRO_CDROM_CFG); CDFileCreate(TS_ISO_NAME,TS_IMG_DRV ":/*",NULL,BOOTCD_BIN_Z); Drv(TS_MAIN_DRV_LET); } @@ -396,15 +362,16 @@ U0 TSWebFile(U8 *name) U8 *name2; CDirEntry de; if (FileFind(name,&de)) { + Free(de.full_name); "File:%s\n",name; UncollapseFile(name,NULL); - Touch(name,"",NULL,de.datetime); + Touch(name,"",,de.datetime); name2=ChgExt(name,"html"); ToHtml(name,name2, - "The Sparrow Operating System\n" - "\n" + "The Temple Operating System\n" + "\n" ); - Touch(name2,"",NULL,de.datetime); + Touch(name2,"",,de.datetime); Free(name2); } } @@ -412,15 +379,15 @@ U0 TSWebFile(U8 *name) U0 MakeWebSite() { CDirEntry *tempm,*tempm2; - if (ts_has_tra_drv) { + if (ts_has_bak_drv) { DocClear; - Cd(TS_TRA_DRV ":/Wb"); - tempm=tempm2=FilesFind(TEXT_FILE_MASK,FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); + Cd(TS_BAK_DRV ":/Wb"); + tempm=tempm2=FilesFind(FILENAME_MASK_TXT,FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); while (tempm) { TSWebFile(tempm->full_name); tempm=tempm->next; } - CDirListDel(tempm2); + CDirLstDel(tempm2); Drv(TS_MAIN_DRV_LET); } } @@ -428,10 +395,10 @@ U0 MakeWebSite() U0 ToWeb(U8 *name) { U8 *st,*st2; - if (ts_has_tra_drv) { + if (ts_has_bak_drv) { st=FileNameAbs(name); - if (!StrNCmp(st+1,":/SparrowOS/",12)) { - st2=MSPrintF(TS_TRA_DRV":/Wb/%s",st+13); + if (!StrNCmp(st+1,":/TempleOS/",12)) { + st2=MSPrintF(TS_BAK_DRV":/Wb/%s",st+13); "%s\n",st2; Copy(name,st2); TSWebFile(st2); @@ -445,10 +412,10 @@ U0 TSUncompress() { U8 *st; CDirEntry *tempm,*tempm1; - if (ts_has_tra_drv) { - DelTree(TS_TRA_DRV ":/Uncompressed"); - CopyTree(TS_MAIN_DRV ":/SparrowOS",TS_TRA_DRV ":/Uncompressed"); - tempm=FilesFind(TS_TRA_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); + if (ts_has_bak_drv) { + DelTree(TS_BAK_DRV ":/Uncompressed"); + CopyTree(TS_MAIN_DRV ":/TempleOS",TS_BAK_DRV ":/Uncompressed"); + tempm=FilesFind(TS_BAK_DRV ":/Uncompressed/*.Z",FUF_RECURSE|FUF_FLATTEN_TREE|FUF_JUST_FILES); while (tempm) { tempm1=tempm->next; st=StrNew(tempm->full_name); @@ -458,86 +425,95 @@ U0 TSUncompress() CDirEntryDel(tempm); tempm=tempm1; } - FilesCursorRem(TS_TRA_DRV ":/Uncompressed/" TEXT_FILE_MASK); + FilesCursorRem(TS_BAK_DRV ":/Uncompressed/" FILENAME_MASK_TXT); } } -U0 MakeBack() +U0 MakeDistrosAndBackUp() { SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ + progress4=*progress4_desc=0; + progress4_max=14; WordStat; WinMax; WinBorder; - ChkAll; - MyCopyDrv(TS_MAIN_DRV_LET,TS_BAK_DRV_LET); - if (ts_has_tra_drv) { - MakeLineCntFile; - MyCopyDrv(TS_MAIN_DRV_LET,TS_TRA_DRV_LET); - DelTree (TS_TRA_DRV ":/Wb"); - CopyTree(TS_MAIN_DRV ":/SparrowOS",TS_TRA_DRV ":/Wb"); + ChkAll; progress4++; + if (ts_has_bak_drv) { + MakeLineCntFile; progress4++; + TSCopyDrv(TS_MAIN_DRV_LET,TS_BAK_DRV_LET); progress4++; + DelTree (TS_BAK_DRV ":/Wb"); progress4++; + CopyTree(TS_MAIN_DRV ":/TempleOS",TS_BAK_DRV ":/Wb"); progress4++; DocClear; - MakeInHouseCDImage; + MakeTSDistro; progress4++; DocClear; - Copy(TS_ISO_NAME,TS_TRA_DRV ":/Wb/SparrowOSTS.ISO"); - MakeProductionCDImage; + Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSTS.ISO"); progress4++; + MakeStdDistro; progress4++; DocClear; - Copy(TS_ISO_NAME,TS_TRA_DRV ":/Wb/SparrowOSCD.ISO"); - Cd(TS_MAIN_DRV ":/SparrowOS"); + Copy(TS_ISO_NAME,TS_BAK_DRV ":/Wb/TempleOSCD.ISO"); progress4++; + Cd(TS_MAIN_DRV ":/TempleOS"); if (LinkChk) throw; - MakeSymbolFiles; - MakeWebSite; - TSUncompress; + progress4++; + MakeSymFiles; progress4++; + MakeWebSite; progress4++; + TSUncompress; progress4++; } - ChkAll; + Drv(TS_MAIN_DRV_LET); + ChkAll; progress4++; + progress4=progress4_max=0; SettingsPop; } public U0 TSMount() { - Auto(CFG_HARD_DRVS "\n"); - Mount; + if (!sys_auto_mount_ide_cnt) { + Auto(CFG_HARD_DRVS "\n"); + Mount; + } } U0 TSCopy() { - DelTree(TS_MAIN_DRV ":/SparrowOS"); - CopyTree(TS_CDROM_DRV ":/",TS_MAIN_DRV ":/"); - CmpDrv(TS_MAIN_DRV_LET); - DelTree(TS_BAK_DRV ":/SparrowOS"); - CopyTree(TS_CDROM_DRV ":/",TS_BAK_DRV ":/"); - CmpDrv(TS_BAK_DRV_LET); - if (ts_has_tra_drv) { - DelTree(TS_TRA_DRV ":/SparrowOS"); - CopyTree(TS_CDROM_DRV ":/",TS_TRA_DRV ":/"); - CmpDrv(TS_TRA_DRV_LET); + if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine + DelTree(TS_MAIN_DRV ":/TempleOS"); + CopyTree(TS_CDROM_DRV ":/",TS_MAIN_DRV ":/"); + TSMakeOSInstallPrtBootLoader(TS_MAIN_DRV_LET); + DelTree(TS_BAK_DRV ":/TempleOS"); + CopyTree(TS_CDROM_DRV ":/",TS_BAK_DRV ":/"); + TSMakeOSInstallPrtBootLoader(TS_BAK_DRV_LET); + Reboot; } - Reboot; } U0 TSPrtDsk() { CTask *task=SpawnUser; CATARep *root=NULL,*ata_drv=NULL,*atapi_drv=NULL; - ATARep(FALSE,&root); - VMDrvs(root,&ata_drv,&atapi_drv); - if (ata_drv) { - XTalkWait(task,"PrtDsk;\nY%C2p%d\nYYY",TS_MAIN_DRV_LET,ata_drv->num); - XTalkWait(task,"%d\nY%d\nY\nY\n",(prt_dsk_dsk_size-PRT_HEADER)/3,(prt_dsk_dsk_size-PRT_HEADER)/3); + if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine + ATARep(FALSE,TRUE,&root); + ATAIDDrvs(root,dft_drv,&ata_drv,&atapi_drv); + if (ata_drv) { + XTalkWait(task,"PrtDsk;\nY%C2p%d\nYYY",TS_MAIN_DRV_LET,ata_drv->num); + XTalkWait(task,"%d\nY\nY\n",(prt_dsk_dsk_size-PRT_HEADER)/2); + } + Kill(task); } - Kill(task); } -public U0 TSUpdate() +public U0 TSUpgrade() { - TSMount; - TSCopy; + if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine + TSMount; + TSCopy; + } } public U0 TSInstall() { - TSPrtDsk; - TSCopy; + if (ts_cid==CID_DFT) {//Dangerous! don't do on my main machine + TSPrtDsk; + TSCopy; + } } diff --git a/TempleOS/Accts/TS/Wb2/Blog.TXT b/TempleOS/Accts/TS/Wb2/Blog.TXT new file mode 100644 index 0000000..534a631 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Blog.TXT @@ -0,0 +1,14 @@ +$WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ + +$IV,1$----03/15/13 21:01:59----$IV,0$ +I changed the name to TempleOS because I didn't like "SparrowOS" and God seems okay with it being His official temple. + +Now, I need an icon kind of thing -- some kind of identifiable graphics. + +Whatchu think, God? + +God says... +$FG,4$gods Fathers lengthened god continuance imitated apprehend dies betters salvation hesitated orator recurring exuberance goeth settled ours beasts littles safe far unsettled Awake Offices hath muttering nourishment Run covenant whitherward family slain composing tumult inordinate foreshow honours shadows disapproveth confine hellish $FG$ + +Shadows on my cross image are off. :-) + diff --git a/TempleOS/Accts/TS/Wb2/Games.TXT b/TempleOS/Accts/TS/Wb2/Games.TXT new file mode 100644 index 0000000..d83af35 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Games.TXT @@ -0,0 +1,81 @@ +$WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ + +$HC,""$ + +$TX+CX,"After Egypt: Moses Game"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/Battle.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/Horeb.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/Map.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/Quail.CPP"$ +$LK-A,"::/TempleOS/Apps/AfterEgypt/WaterRock.CPP"$ +$LK-A,"::/TempleOS/Demo/Graphics/Camp.CPP"$ +$LK-A,"::/TempleOS/Demo/MultiCore/Clouds.CPP"$ + + + + + + + +$HC,""$ + +$TX+CX,"Pilgrim Game"$ +$LK-A,"::/TempleOS/Apps/Pilgrims/Pilgrims.CPP"$ + + + + + + + +$HC,""$ + +$TX+CX,"Flight Sim / First Person Shooter"$ +$LK-A,"::/TempleOS/Demo/GameStarters/EagleDive.CPP"$ +$LK-A,"::/TempleOS/Demo/GameStarters/FPS.CPP"$ + + + + + + + +$HC,""$ + +$TX+CX,"X-Caliber / Raw Hide / Wenceslas"$ +$LK-A,"::/TempleOS/Apps/X-Caliber/X-Caliber.CPP"$ +$LK-A,"::/TempleOS/Apps/X-Caliber/XCCtrls.CPP"$ +$LK-A,"::/TempleOS/Demo/GameStarters/RawHide.CPP"$ +$LK-A,"::/TempleOS/Demo/GameStarters/Wenceslas.CPP"$ + + + + + + + +$HC,""$ + +$TX+CX,"Span: Bridge Design"$ +$LK-A,"::/TempleOS/Apps/Span/Span.HPP"$ +$LK-A,"::/TempleOS/Apps/Span/SpanBridge1.CPP"$ +$LK-A,"::/TempleOS/Apps/Span/SpanDerive.CPP"$ +$LK-A,"::/TempleOS/Apps/Span/SpanMain.CPP"$ +$LK-A,"::/TempleOS/Apps/Span/SpanNew.CPP"$ + + + + + + +$HC,""$ + +$TX+CX,"Tanks"$ +$LK-A,"::/TempleOS/Apps/Tanks/Tanks.CPP"$ + + + + + + diff --git a/TempleOS/Accts/TS/Wb2/Hymns.TXT b/TempleOS/Accts/TS/Wb2/Hymns.TXT new file mode 100644 index 0000000..e1e4f98 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Hymns.TXT @@ -0,0 +1,82 @@ +$WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ + +$FG,4$$TX+CX+HTML,"Download Hymn Player/Maker for Windows (6.99MB)","http://www.templeos.org/files/TSHymnSetUp.zip"$$FG$ + + +$HC,""$ +$TX+CX,"Hymns #6"$ +$LK+CX,"1) Risen ","FI:::/TempleOS/Apps/MusicOrgan/Examples/risen.CPP"$ +$LK+CX,"2) Struggles","FI:::/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP"$ +$LK+CX,"3) Valued ","FI:::/TempleOS/Apps/MusicOrgan/Examples/valued.CPP"$ +$LK+CX,"4) Born ","FI:::/TempleOS/Apps/MusicOrgan/Examples/born.CPP"$ +$LK+CX,"5) Doing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/doing.CPP"$ +$LK+CX,"6) Dialogue ","FI:::/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP"$ + + +$HC,""$ +$TX+CX,"Hymns #7"$ +$FG,4$$TX+CX,"1) Access (Deleted)"$$FG$ +$LK+CX,"2) Silver ","FI:::/TempleOS/Apps/MusicOrgan/Examples/silver.CPP"$ +$LK+CX,"3) Night ","FI:::/TempleOS/Apps/MusicOrgan/Examples/night.CPP"$ +$LK+CX,"4) Abyss ","FI:::/TempleOS/Apps/MusicOrgan/Examples/abyss.CPP"$ +$LK+CX,"5) Elijah ","FI:::/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP"$ +$LK+CX,"6) Environeth ","FI:::/TempleOS/Apps/MusicOrgan/Examples/environeth.CPP"$ + + +$HC,""$$HC,""$ +$TX+CX,"Hymns #8"$ +$FG,4$$TX+CX,"1) Pardon (Deleted) "$$FG$ +$FG,4$$TX+CX,"2) Brittle (Deleted)"$$FG$ +$LK+CX,"3) Service ","FI:::/TempleOS/Apps/MusicOrgan/Examples/service.CPP"$ +$LK+CX,"4) Reposes ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reposes.CPP"$ +$LK+CX,"5) Limit ","FI:::/TempleOS/Apps/MusicOrgan/Examples/limit.CPP"$ + + +$HC,""$ +$TX+CX,"Hymns #9"$ +$LK+CX,"1) Mightest ","FI:::/TempleOS/Apps/MusicOrgan/Examples/mightest.CPP"$ +$LK+CX,"2) Fishermen ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP"$ +$LK+CX,"3) Expedition","FI:::/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP"$ +$LK+CX,"4) Awake ","FI:::/TempleOS/Apps/MusicOrgan/Examples/awake.CPP"$ +$LK+CX,"5) Exiled ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exiled.CPP"$ +$LK+CX,"6) Gutenberg ","FI:::/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP"$ + + +$HC,""$ +$TX+CX,"Hymns #10"$ +$LK+CX," 1) Abiding ","FI:::/TempleOS/Apps/MusicOrgan/Examples/abiding.CPP"$ +$LK+CX," 2) Fog ","FI:::/TempleOS/Apps/MusicOrgan/Examples/fog.CPP"$ +$LK+CX," 3) Reasoning ","FI:::/TempleOS/Apps/MusicOrgan/Examples/reasoning.CPP"$ +$LK+CX," 4) Childish ","FI:::/TempleOS/Apps/MusicOrgan/Examples/childish.CPP"$ +$LK+CX," 5) Furnishing","FI:::/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP"$ +$LK+CX," 6) Prosper ","FI:::/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP"$ +$LK+CX," 7) Exalt ","FI:::/TempleOS/Apps/MusicOrgan/Examples/exalt.CPP"$ +$LK+CX," 8) Hope ","FI:::/TempleOS/Apps/MusicOrgan/Examples/hope.CPP"$ +$LK+CX," 9) Free ","FI:::/TempleOS/Apps/MusicOrgan/Examples/free.CPP"$ +$LK+CX,"10) Freaks ","FI:::/TempleOS/Apps/MusicOrgan/Examples/freaks.CPP"$ +$LK+CX,"11) Proponent ","FI:::/TempleOS/Apps/MusicOrgan/Examples/proponent.CPP"$ + + +$HC,""$ +$TX+CX,"Hymns #11"$ +$LK+CX,"1) Bedewed ","FI:::/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP"$ +$LK+CX,"2) Purpose ","FI:::/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP"$ +$LK+CX,"3) Sustain ","FI:::/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP"$ +$LK+CX,"4) Personal","FI:::/TempleOS/Apps/MusicOrgan/Examples/personal.CPP"$ +$LK+CX,"5) Twins ","FI:::/TempleOS/Apps/MusicOrgan/Examples/twins.CPP"$ +$LK+CX,"6) Keeping ","FI:::/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP"$ +$LK+CX,"7) Dream ","FI:::/TempleOS/Apps/MusicOrgan/Examples/dream.CPP"$ + + +$HC,""$ +$TX+CX,"Hymns #12"$ +$LK+CX,"1) Small ","FI:::/TempleOS/Apps/MusicOrgan/Examples/small.CPP"$ +$LK+CX,"2) Satisfaction ","FI:::/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP"$ +$LK+CX,"3) Image ","FI:::/TempleOS/Apps/MusicOrgan/Examples/image.CPP"$ +$FG,4$$TX+CX,"4) Duab(Deleted)"$$FG$ +$LK+CX,"5) Disputing ","FI:::/TempleOS/Apps/MusicOrgan/Examples/disputing.CPP"$ +$LK+CX,"6) Appreciate ","FI:::/TempleOS/Apps/MusicOrgan/Examples/appreciate.CPP"$ +$LK+CX,"7) Completed ","FI:::/TempleOS/Apps/MusicOrgan/Examples/completed.CPP"$ + +$FG,8$ +* "Windows" is a trademark of MicroSoft Corp. diff --git a/TempleOS/Accts/TS/Wb2/LineCnt.TXT b/TempleOS/Accts/TS/Wb2/LineCnt.TXT new file mode 100644 index 0000000..d2a3b11 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/LineCnt.TXT @@ -0,0 +1,731 @@ +$WW+H,1$ 139,640 $TR,"/TempleOS/*"$ +$ID,2$ 7,040 $TR,"Accts"$ +$ID,2$ 283 $TR,"Install"$ +$ID,2$ 41 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Accts/Install/Adam3fSys.CPP"$ + 242 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Accts/Install/DoItOnce.CPP"$ +$ID,-2$ 61 $TR,"SafeMode"$ +$ID,2$ 10 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Accts/SafeMode/Adam3.CPP"$ + 2 $LK,"Adam3cSnd.CPP.Z","FI:D:/TempleOS/Accts/SafeMode/Adam3cSnd.CPP"$ + 39 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Accts/SafeMode/Adam3fSys.CPP"$ + 10 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Accts/SafeMode/DoItOnce.CPP"$ +$ID,-2$ 6,360 $TR,"TS"$ +$ID,2$ 5,028 $TR,"TAD"$ +$ID,2$ 822 $TR,"Archive"$ +$ID,2$ 489 $LK,"FileSysISO3.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/Archive/FileSysISO3.CPP"$ + 218 $LK,"USB.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/Archive/USB.CPP"$ + 115 $LK,"USB1a.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/Archive/USB1a.CPP"$ +$ID,-2$ 4,122 $TR,"MusicOrgan"$ +$ID,2$ 73 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/abiding.CPP"$ + 42 $LK,"abyss.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/abyss.CPP"$ + 23 $LK,"almighty.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/almighty.CPP"$ + 23 $LK,"appreciate.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/appreciate.CPP"$ + 75 $LK,"awake.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/awake.CPP"$ + 63 $LK,"battlehymnsolo.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/battlehymnsolo.CPP"$ + 47 $LK,"bedewed.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/bedewed.CPP"$ + 49 $LK,"blinded.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/blinded.CPP"$ + 55 $LK,"born.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/born.CPP"$ + 23 $LK,"childish.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/childish.CPP"$ + 25 $LK,"compassions.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/compassions.CPP"$ + 41 $LK,"completed.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/completed.CPP"$ + 31 $LK,"cosam.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/cosam.CPP"$ + 30 $LK,"depending.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/depending.CPP"$ + 25 $LK,"despairing.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/despairing.CPP"$ + 21 $LK,"determination.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/determination.CPP"$ + 69 $LK,"dialogue.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/dialogue.CPP"$ + 27 $LK,"disputing.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/disputing.CPP"$ + 65 $LK,"doing.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/doing.CPP"$ + 17 $LK,"downfall.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/downfall.CPP"$ + 25 $LK,"dream.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/dream.CPP"$ + 21 $LK,"efforts.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/efforts.CPP"$ + 97 $LK,"elijah.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/elijah.CPP"$ + 23 $LK,"environeth.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/environeth.CPP"$ + 40 $LK,"epicurus.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/epicurus.CPP"$ + 40 $LK,"exalt.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/exalt.CPP"$ + 63 $LK,"exiled.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/exiled.CPP"$ + 21 $LK,"exodus.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/exodus.CPP"$ + 45 $LK,"expedition.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/expedition.CPP"$ + 35 $LK,"fairness.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/fairness.CPP"$ + 26 $LK,"feigned.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/feigned.CPP"$ + 68 $LK,"finger.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/finger.CPP"$ + 51 $LK,"first.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/first.CPP"$ + 57 $LK,"fishermen.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/fishermen.CPP"$ + 21 $LK,"fixing.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/fixing.CPP"$ + 21 $LK,"flung.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/flung.CPP"$ + 59 $LK,"fog.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/fog.CPP"$ + 37 $LK,"forasmuch.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/forasmuch.CPP"$ + 25 $LK,"freaks.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/freaks.CPP"$ + 153 $LK,"free.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/free.CPP"$ + 75 $LK,"furnishing.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/furnishing.CPP"$ + 52 $LK,"good.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/good.CPP"$ + 59 $LK,"gutenberg.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/gutenberg.CPP"$ + 57 $LK,"happy.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/happy.CPP"$ + 21 $LK,"honestly.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/honestly.CPP"$ + 55 $LK,"hope.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/hope.CPP"$ + 33 $LK,"image.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/image.CPP"$ + 46 $LK,"josh.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/josh.CPP"$ + 49 $LK,"keeping.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/keeping.CPP"$ + 31 $LK,"kept.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/kept.CPP"$ + 56 $LK,"limit.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/limit.CPP"$ + 60 $LK,"mary.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/mary.CPP"$ + 53 $LK,"mightest.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/mightest.CPP"$ + 78 $LK,"mildly.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/mildly.CPP"$ + 21 $LK,"myrrh.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/myrrh.CPP"$ + 24 $LK,"nay.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/nay.CPP"$ + 80 $LK,"night.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/night.CPP"$ + 21 $LK,"o.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/o.CPP"$ + 37 $LK,"partake.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/partake.CPP"$ + 21 $LK,"permitted.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/permitted.CPP"$ + 23 $LK,"personal.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/personal.CPP"$ + 21 $LK,"population.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/population.CPP"$ + 17 $LK,"proponent.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/proponent.CPP"$ + 55 $LK,"prosper.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/prosper.CPP"$ + 26 $LK,"psalm.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/psalm.CPP"$ + 37 $LK,"purpose.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/purpose.CPP"$ + 23 $LK,"reasoning.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/reasoning.CPP"$ + 37 $LK,"reliance.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/reliance.CPP"$ + 25 $LK,"reposes.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/reposes.CPP"$ + 30 $LK,"restless.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/restless.CPP"$ + 22 $LK,"rifled.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/rifled.CPP"$ + 90 $LK,"risen.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/risen.CPP"$ + 101 $LK,"satisfaction.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/satisfaction.CPP"$ + 36 $LK,"scriptures.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/scriptures.CPP"$ + 33 $LK,"service.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/service.CPP"$ + 53 $LK,"shield.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/shield.CPP"$ + 32 $LK,"signifies.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/signifies.CPP"$ + 26 $LK,"silver.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/silver.CPP"$ + 93 $LK,"small.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/small.CPP"$ + 44 $LK,"struggles.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/struggles.CPP"$ + 46 $LK,"sustain.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/sustain.CPP"$ + 33 $LK,"teachings.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/teachings.CPP"$ + 74 $LK,"thereupon.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/thereupon.CPP"$ + 25 $LK,"thither.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/thither.CPP"$ + 26 $LK,"twins.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/twins.CPP"$ + 41 $LK,"valued.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/valued.CPP"$ + 67 $LK,"vengeance.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/vengeance.CPP"$ + 61 $LK,"verses.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/verses.CPP"$ + 23 $LK,"villa.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/villa.CPP"$ + 51 $LK,"wisdom.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/wisdom.CPP"$ + 33 $LK,"witherto.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/witherto.CPP"$ + 23 $LK,"worship.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/worship.CPP"$ + 21 $LK,"yesterday.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/yesterday.CPP"$ + 27 $LK,"you.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/you.CPP"$ + 66 $LK,"zip.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MusicOrgan/zip.CPP"$ +$ID,-2$ 21 $LK,"Adam3aLocalize.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/Adam3aLocalize.CPP"$ + 55 $LK,"MakeDistro.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/MakeDistro.CPP"$ + 5 $LK,"Registry.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/Registry.CPP"$ + 3 $LK,"Test.CPP.Z","FI:D:/TempleOS/Accts/TS/TAD/Test.CPP"$ +$ID,-2$ 0 $TR,"Wb2"$ +$ID,2$$ID,-2$ 14 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Accts/TS/Adam3.CPP"$ + 10 $LK,"Adam3bPkgs.CPP.Z","FI:D:/TempleOS/Accts/TS/Adam3bPkgs.CPP"$ + 267 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Accts/TS/Adam3dKeyPlugIns.CPP"$ + 10 $LK,"Adam3eWrappers.CPP.Z","FI:D:/TempleOS/Accts/TS/Adam3eWrappers.CPP"$ + 61 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Accts/TS/Adam3fSys.CPP"$ + 13 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Accts/TS/DoItOnce.CPP"$ + 437 $LK,"TSAdam.CPP.Z","FI:D:/TempleOS/Accts/TS/TSAdam.CPP"$ + 520 $LK,"TSDistro.CPP.Z","FI:D:/TempleOS/Accts/TS/TSDistro.CPP"$ +$ID,-2$ 0 $TR,"User"$ +$ID,2$$ID,-2$ 10 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Accts/Adam3.CPP"$ + 22 $LK,"Adam3aLocalize.CPP.Z","FI:D:/TempleOS/Accts/Adam3aLocalize.CPP"$ + 25 $LK,"Adam3bPkgs.CPP.Z","FI:D:/TempleOS/Accts/Adam3bPkgs.CPP"$ + 11 $LK,"Adam3cSnd.CPP.Z","FI:D:/TempleOS/Accts/Adam3cSnd.CPP"$ + 180 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Accts/Adam3dKeyPlugIns.CPP"$ + 28 $LK,"Adam3eWrappers.CPP.Z","FI:D:/TempleOS/Accts/Adam3eWrappers.CPP"$ + 43 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Accts/Adam3fSys.CPP"$ + 17 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Accts/DoItOnce.CPP"$ +$ID,-2$ 39,271 $TR,"Adam"$ +$ID,2$ 862 $TR,"Boot"$ +$ID,2$ 158 $LK,"BootCD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootCD.CPP"$ + 93 $LK,"BootHD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootHD.CPP"$ + 106 $LK,"BootMHD.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootMHD.CPP"$ + 120 $LK,"BootMHD2.CPP.Z","FI:D:/TempleOS/Adam/Boot/BootMHD2.CPP"$ + 385 $LK,"InsBoot.CPP.Z","FI:D:/TempleOS/Adam/Boot/InsBoot.CPP"$ +$ID,-2$ 716 $TR,"Ctrls"$ +$ID,2$ 9 $LK,"Ctrls.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/Ctrls.CPP"$ + 394 $LK,"Ctrls2a.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/Ctrls2a.CPP"$ + 95 $LK,"CtrlsButton.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/CtrlsButton.CPP"$ + 218 $LK,"CtrlsSlider.CPP.Z","FI:D:/TempleOS/Adam/Ctrls/CtrlsSlider.CPP"$ +$ID,-2$ 11,855 $TR,"Doc"$ +$ID,2$ 101 $LK,"Doc.CPP.Z","FI:D:/TempleOS/Adam/Doc/Doc.CPP"$ + 193 $LK,"DocBible.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocBible.CPP"$ + 429 $LK,"DocCodeTools.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocCodeTools.CPP"$ + 1,186 $LK,"DocCtrlL.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocCtrlL.CPP"$ + 2,484 $LK,"DocEd.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocEd.CPP"$ + 456 $LK,"DocFile.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocFile.CPP"$ + 386 $LK,"DocHighlight.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocHighlight.CPP"$ + 507 $LK,"DocIDE.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocIDE.CPP"$ + 220 $LK,"DocMacro.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocMacro.CPP"$ + 691 $LK,"DocMain.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocMain.CPP"$ + 909 $LK,"DocNew.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocNew.CPP"$ + 116 $LK,"DocOpt.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocOpt.CPP"$ + 1,277 $LK,"DocPlain.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocPlain.CPP"$ + 880 $LK,"DocPopUp.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocPopUp.CPP"$ + 1,844 $LK,"DocRecalc.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocRecalc.CPP"$ + 176 $LK,"DocTree.CPP.Z","FI:D:/TempleOS/Adam/Doc/DocTree.CPP"$ +$ID,-2$ 2,396 $TR,"Dsk"$ +$ID,2$ 233 $LK,"ChkDsk.CPP.Z","FI:D:/TempleOS/Adam/Dsk/ChkDsk.CPP"$ + 6 $LK,"Dsk2.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2.CPP"$ + 430 $LK,"Dsk2a.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2a.CPP"$ + 411 $LK,"Dsk2b.CPP.Z","FI:D:/TempleOS/Adam/Dsk/Dsk2b.CPP"$ + 550 $LK,"DskCDDVD.CPP.Z","FI:D:/TempleOS/Adam/Dsk/DskCDDVD.CPP"$ + 766 $LK,"FileMgr.CPP.Z","FI:D:/TempleOS/Adam/Dsk/FileMgr.CPP"$ +$ID,-2$ 12,240 $TR,"Gr"$ +$ID,2$ 604 $LK,"CSpriteBitMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteBitMap.CPP"$ + 1,220 $LK,"CSpriteEd.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteEd.CPP"$ + 1,384 $LK,"CSpriteMesh.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteMesh.CPP"$ + 236 $LK,"CSpriteNew.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteNew.CPP"$ + 1,282 $LK,"CSpriteVect.CPP.Z","FI:D:/TempleOS/Adam/Gr/CSpriteVect.CPP"$ + 130 $LK,"Gr.CPP.Z","FI:D:/TempleOS/Adam/Gr/Gr.CPP"$ + 766 $LK,"GrAsm.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrAsm.CPP"$ + 1,682 $LK,"GrBitMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrBitMap.CPP"$ + 11 $LK,"GrCfg.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrCfg.CPP"$ + 107 $LK,"GrChar.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrChar.CPP"$ + 181 $LK,"GrComposites.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrComposites.CPP"$ + 305 $LK,"GrDC.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrDC.CPP"$ + 1,469 $LK,"GrPrimatives.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrPrimatives.CPP"$ + 786 $LK,"GrScreen.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrScreen.CPP"$ + 527 $LK,"GrSpritePlot.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrSpritePlot.CPP"$ + 487 $LK,"GrVectMap.CPP.Z","FI:D:/TempleOS/Adam/Gr/GrVectMap.CPP"$ + 1,063 $LK,"MathGr.CPP.Z","FI:D:/TempleOS/Adam/Gr/MathGr.CPP"$ +$ID,-2$ 2,258 $TR,"Snd"$ +$ID,2$ 652 $LK,"HDAudio.CPP.Z","FI:D:/TempleOS/Adam/Snd/HDAudio.CPP"$ + 639 $LK,"HDCfg.CPP.Z","FI:D:/TempleOS/Adam/Snd/HDCfg.CPP"$ + 254 $LK,"MathAudio.CPP.Z","FI:D:/TempleOS/Adam/Snd/MathAudio.CPP"$ + 261 $LK,"Music.CPP.Z","FI:D:/TempleOS/Adam/Snd/Music.CPP"$ + 67 $LK,"Snd.CPP.Z","FI:D:/TempleOS/Adam/Snd/Snd.CPP"$ + 69 $LK,"SndEffects.CPP.Z","FI:D:/TempleOS/Adam/Snd/SndEffects.CPP"$ + 316 $LK,"SndFile.CPP.Z","FI:D:/TempleOS/Adam/Snd/SndFile.CPP"$ +$ID,-2$ 1,343 $TR,"WordStat"$ +$ID,2$ 307 $LK,"WSDict.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WSDict.CPP"$ + 220 $LK,"WSDictGen.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WSDictGen.CPP"$ + 722 $LK,"WSMain.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WSMain.CPP"$ + 94 $LK,"WordStat.CPP.Z","FI:D:/TempleOS/Adam/WordStat/WordStat.CPP"$ +$ID,-2$ 72 $LK,"Adam2.CPP.Z","FI:D:/TempleOS/Adam/Adam2.CPP"$ + 139 $LK,"AutoFile2a.CPP.Z","FI:D:/TempleOS/Adam/AutoFile2a.CPP"$ + 84 $LK,"BinRep.CPP.Z","FI:D:/TempleOS/Adam/BinRep.CPP"$ + 256 $LK,"Dbg2a.CPP.Z","FI:D:/TempleOS/Adam/Dbg2a.CPP"$ + 218 $LK,"DevInfo.CPP.Z","FI:D:/TempleOS/Adam/DevInfo.CPP"$ + 298 $LK,"Diff.CPP.Z","FI:D:/TempleOS/Adam/Diff.CPP"$ + 56 $LK,"DocDefines.CPP.Z","FI:D:/TempleOS/Adam/DocDefines.CPP"$ + 288 $LK,"FileBMP.CPP.Z","FI:D:/TempleOS/Adam/FileBMP.CPP"$ + 262 $LK,"Grep.CPP.Z","FI:D:/TempleOS/Adam/Grep.CPP"$ + 547 $LK,"Hash2a.CPP.Z","FI:D:/TempleOS/Adam/Hash2a.CPP"$ + 160 $LK,"HeapLog.CPP.Z","FI:D:/TempleOS/Adam/HeapLog.CPP"$ + 114 $LK,"LineCnt.CPP.Z","FI:D:/TempleOS/Adam/LineCnt.CPP"$ + 76 $LK,"LinkChk.CPP.Z","FI:D:/TempleOS/Adam/LinkChk.CPP"$ + 169 $LK,"LogIn.CPP.Z","FI:D:/TempleOS/Adam/LogIn.CPP"$ + 139 $LK,"Math2a.CPP.Z","FI:D:/TempleOS/Adam/Math2a.CPP"$ + 636 $LK,"MathODE.CPP.Z","FI:D:/TempleOS/Adam/MathODE.CPP"$ + 241 $LK,"MemRep.CPP.Z","FI:D:/TempleOS/Adam/MemRep.CPP"$ + 242 $LK,"Menu.CPP.Z","FI:D:/TempleOS/Adam/Menu.CPP"$ + 92 $LK,"Merge.CPP.Z","FI:D:/TempleOS/Adam/Merge.CPP"$ + 201 $LK,"Profiler.CPP.Z","FI:D:/TempleOS/Adam/Profiler.CPP"$ + 70 $LK,"S2T.CPP.Z","FI:D:/TempleOS/Adam/S2T.CPP"$ + 28 $LK,"Start.CPP.Z","FI:D:/TempleOS/Adam/Start.CPP"$ + 122 $LK,"TaskSettings.CPP.Z","FI:D:/TempleOS/Adam/TaskSettings.CPP"$ + 349 $LK,"ToHtml.CPP.Z","FI:D:/TempleOS/Adam/ToHtml.CPP"$ + 150 $LK,"ToTXT.CPP.Z","FI:D:/TempleOS/Adam/ToTXT.CPP"$ + 243 $LK,"Training.CPP.Z","FI:D:/TempleOS/Adam/Training.CPP"$ + 444 $LK,"Utils2a.CPP.Z","FI:D:/TempleOS/Adam/Utils2a.CPP"$ + 246 $LK,"WallPaper.CPP.Z","FI:D:/TempleOS/Adam/WallPaper.CPP"$ + 1,549 $LK,"Window.CPP.Z","FI:D:/TempleOS/Adam/Window.CPP"$ + 110 $LK,"AdamExt.HPP.Z","FI:D:/TempleOS/Adam/AdamExt.HPP"$ +$ID,-2$ 15,857 $TR,"Apps"$ +$ID,2$ 1,126 $TR,"AfterEgypt"$ +$ID,2$ 0 $TR,"Comics"$ +$ID,2$$ID,-2$ 283 $LK,"AfterEgypt.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/AfterEgypt.CPP"$ + 136 $LK,"Battle.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Battle.CPP"$ + 28 $LK,"Comics.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Comics.CPP"$ + 327 $LK,"Horeb.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Horeb.CPP"$ + 17 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Load.CPP"$ + 78 $LK,"Map.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Map.CPP"$ + 95 $LK,"Quail.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Quail.CPP"$ + 4 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/Run.CPP"$ + 158 $LK,"WaterRock.CPP.Z","FI:D:/TempleOS/Apps/AfterEgypt/WaterRock.CPP"$ +$ID,-2$ 462 $TR,"GrModels"$ +$ID,2$ 133 $LK,"BallGen.CPP.Z","FI:D:/TempleOS/Apps/GrModels/BallGen.CPP"$ + 4 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/GrModels/Load.CPP"$ + 296 $LK,"ManGen.CPP.Z","FI:D:/TempleOS/Apps/GrModels/ManGen.CPP"$ + 26 $LK,"Models.CPP.Z","FI:D:/TempleOS/Apps/GrModels/Models.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/GrModels/Run.CPP"$ +$ID,-2$ 75 $TR,"HolySpirit"$ +$ID,2$ 75 $LK,"HolySpirit.CPP.Z","FI:D:/TempleOS/Apps/HolySpirit/HolySpirit.CPP"$ +$ID,-2$ 747 $TR,"KeepAway"$ +$ID,2$ 742 $LK,"KeepAway.CPP.Z","FI:D:/TempleOS/Apps/KeepAway/KeepAway.CPP"$ + 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/KeepAway/Load.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/KeepAway/Run.CPP"$ +$ID,-2$ 617 $TR,"Logic"$ +$ID,2$ 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Logic/Load.CPP"$ + 612 $LK,"Logic.CPP.Z","FI:D:/TempleOS/Apps/Logic/Logic.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Logic/Run.CPP"$ +$ID,-2$ 6,486 $TR,"MusicOrgan"$ +$ID,2$ 4,059 $TR,"Examples"$ +$ID,2$ 73 $LK,"abiding.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abiding.CPP"$ + 42 $LK,"abyss.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/abyss.CPP"$ + 23 $LK,"almighty.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/almighty.CPP"$ + 23 $LK,"appreciate.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/appreciate.CPP"$ + 75 $LK,"awake.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/awake.CPP"$ + 63 $LK,"battlehymnsolo.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/battlehymnsolo.CPP"$ + 47 $LK,"bedewed.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/bedewed.CPP"$ + 49 $LK,"blinded.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/blinded.CPP"$ + 55 $LK,"born.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/born.CPP"$ + 23 $LK,"childish.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/childish.CPP"$ + 25 $LK,"compassions.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/compassions.CPP"$ + 41 $LK,"completed.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/completed.CPP"$ + 31 $LK,"cosam.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/cosam.CPP"$ + 30 $LK,"depending.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/depending.CPP"$ + 25 $LK,"despairing.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/despairing.CPP"$ + 21 $LK,"determination.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/determination.CPP"$ + 69 $LK,"dialogue.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/dialogue.CPP"$ + 27 $LK,"disputing.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/disputing.CPP"$ + 65 $LK,"doing.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/doing.CPP"$ + 17 $LK,"downfall.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/downfall.CPP"$ + 25 $LK,"dream.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/dream.CPP"$ + 21 $LK,"efforts.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/efforts.CPP"$ + 97 $LK,"elijah.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/elijah.CPP"$ + 23 $LK,"environeth.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/environeth.CPP"$ + 40 $LK,"epicurus.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/epicurus.CPP"$ + 40 $LK,"exalt.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/exalt.CPP"$ + 63 $LK,"exiled.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/exiled.CPP"$ + 45 $LK,"expedition.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/expedition.CPP"$ + 35 $LK,"fairness.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/fairness.CPP"$ + 26 $LK,"feigned.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/feigned.CPP"$ + 68 $LK,"finger.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/finger.CPP"$ + 51 $LK,"first.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/first.CPP"$ + 57 $LK,"fishermen.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/fishermen.CPP"$ + 21 $LK,"fixing.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/fixing.CPP"$ + 21 $LK,"flung.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/flung.CPP"$ + 59 $LK,"fog.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/fog.CPP"$ + 37 $LK,"forasmuch.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/forasmuch.CPP"$ + 25 $LK,"freaks.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/freaks.CPP"$ + 153 $LK,"free.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/free.CPP"$ + 75 $LK,"furnishing.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/furnishing.CPP"$ + 52 $LK,"good.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/good.CPP"$ + 59 $LK,"gutenberg.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/gutenberg.CPP"$ + 57 $LK,"happy.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/happy.CPP"$ + 21 $LK,"honestly.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/honestly.CPP"$ + 55 $LK,"hope.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/hope.CPP"$ + 33 $LK,"image.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/image.CPP"$ + 46 $LK,"josh.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/josh.CPP"$ + 49 $LK,"keeping.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/keeping.CPP"$ + 31 $LK,"kept.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/kept.CPP"$ + 56 $LK,"limit.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/limit.CPP"$ + 60 $LK,"mary.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/mary.CPP"$ + 53 $LK,"mightest.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/mightest.CPP"$ + 78 $LK,"mildly.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/mildly.CPP"$ + 24 $LK,"nay.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/nay.CPP"$ + 80 $LK,"night.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/night.CPP"$ + 21 $LK,"o.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/o.CPP"$ + 37 $LK,"partake.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/partake.CPP"$ + 21 $LK,"permitted.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/permitted.CPP"$ + 23 $LK,"personal.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/personal.CPP"$ + 21 $LK,"population.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/population.CPP"$ + 17 $LK,"proponent.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/proponent.CPP"$ + 55 $LK,"prosper.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/prosper.CPP"$ + 26 $LK,"psalm.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/psalm.CPP"$ + 37 $LK,"purpose.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/purpose.CPP"$ + 23 $LK,"reasoning.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/reasoning.CPP"$ + 37 $LK,"reliance.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/reliance.CPP"$ + 25 $LK,"reposes.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/reposes.CPP"$ + 30 $LK,"restless.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/restless.CPP"$ + 22 $LK,"rifled.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/rifled.CPP"$ + 90 $LK,"risen.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/risen.CPP"$ + 101 $LK,"satisfaction.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/satisfaction.CPP"$ + 36 $LK,"scriptures.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/scriptures.CPP"$ + 33 $LK,"service.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/service.CPP"$ + 53 $LK,"shield.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/shield.CPP"$ + 32 $LK,"signifies.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/signifies.CPP"$ + 26 $LK,"silver.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/silver.CPP"$ + 93 $LK,"small.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/small.CPP"$ + 44 $LK,"struggles.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/struggles.CPP"$ + 46 $LK,"sustain.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/sustain.CPP"$ + 33 $LK,"teachings.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/teachings.CPP"$ + 74 $LK,"thereupon.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/thereupon.CPP"$ + 25 $LK,"thither.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/thither.CPP"$ + 26 $LK,"twins.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/twins.CPP"$ + 41 $LK,"valued.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/valued.CPP"$ + 67 $LK,"vengeance.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/vengeance.CPP"$ + 61 $LK,"verses.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/verses.CPP"$ + 23 $LK,"villa.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/villa.CPP"$ + 51 $LK,"wisdom.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/wisdom.CPP"$ + 33 $LK,"witherto.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/witherto.CPP"$ + 23 $LK,"worship.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/worship.CPP"$ + 27 $LK,"you.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/you.CPP"$ + 66 $LK,"zip.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Examples/zip.CPP"$ +$ID,-2$ 2 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Install.CPP"$ + 147 $LK,"JukeBox.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/JukeBox.CPP"$ + 8 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Load.CPP"$ + 198 $LK,"MakeSong.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/MakeSong.CPP"$ + 1,980 $LK,"Organ.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Organ.CPP"$ + 88 $LK,"OrganCtrls.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/OrganCtrls.CPP"$ + 4 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/MusicOrgan/Run.CPP"$ +$ID,-2$ 759 $TR,"Pilgrims"$ +$ID,2$ 8 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Pilgrims/Load.CPP"$ + 748 $LK,"Pilgrims.CPP.Z","FI:D:/TempleOS/Apps/Pilgrims/Pilgrims.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Pilgrims/Run.CPP"$ +$ID,-2$ 844 $TR,"Span"$ +$ID,2$ 2 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/Span/Install.CPP"$ + 11 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Span/Load.CPP"$ + 4 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Span/Run.CPP"$ + 91 $LK,"SpanBridge1.CPP.Z","FI:D:/TempleOS/Apps/Span/SpanBridge1.CPP"$ + 48 $LK,"SpanDerive.CPP.Z","FI:D:/TempleOS/Apps/Span/SpanDerive.CPP"$ + 505 $LK,"SpanMain.CPP.Z","FI:D:/TempleOS/Apps/Span/SpanMain.CPP"$ + 128 $LK,"SpanNew.CPP.Z","FI:D:/TempleOS/Apps/Span/SpanNew.CPP"$ + 55 $LK,"Span.HPP.Z","FI:D:/TempleOS/Apps/Span/Span.HPP"$ +$ID,-2$ 640 $TR,"Strut"$ +$ID,2$ 7 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Strut/Load.CPP"$ + 4 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Strut/Run.CPP"$ + 629 $LK,"Strut.CPP.Z","FI:D:/TempleOS/Apps/Strut/Strut.CPP"$ +$ID,-2$ 1,969 $TR,"Tanks"$ +$ID,2$ 234 $TR,"AIs"$ +$ID,2$ 157 $LK,"Human.CPP.Z","FI:D:/TempleOS/Apps/Tanks/AIs/Human.CPP"$ + 77 $LK,"SimpleAI.CPP.Z","FI:D:/TempleOS/Apps/Tanks/AIs/SimpleAI.CPP"$ +$ID,-2$ 3 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/Tanks/Install.CPP"$ + 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Tanks/Load.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Tanks/Run.CPP"$ + 1,727 $LK,"Tanks.CPP.Z","FI:D:/TempleOS/Apps/Tanks/Tanks.CPP"$ +$ID,-2$ 164 $TR,"TimeClock"$ +$ID,2$ 6 $LK,"Install.CPP.Z","FI:D:/TempleOS/Apps/TimeClock/Install.CPP"$ + 2 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/TimeClock/Load.CPP"$ + 156 $LK,"TimeClk.CPP.Z","FI:D:/TempleOS/Apps/TimeClock/TimeClk.CPP"$ +$ID,-2$ 609 $TR,"Timeout"$ +$ID,2$ 6 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Timeout/Load.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Timeout/Run.CPP"$ + 600 $LK,"Timeout.CPP.Z","FI:D:/TempleOS/Apps/Timeout/Timeout.CPP"$ +$ID,-2$ 67 $TR,"Vocabulary"$ +$ID,2$ 6 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/Vocabulary/Load.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/Vocabulary/Run.CPP"$ + 58 $LK,"VocabQuiz.CPP.Z","FI:D:/TempleOS/Apps/Vocabulary/VocabQuiz.CPP"$ +$ID,-2$ 1,292 $TR,"X-Caliber"$ +$ID,2$ 9 $LK,"Load.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/Load.CPP"$ + 3 $LK,"Run.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/Run.CPP"$ + 1,139 $LK,"X-Caliber.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/X-Caliber.CPP"$ + 141 $LK,"XCCtrls.CPP.Z","FI:D:/TempleOS/Apps/X-Caliber/XCCtrls.CPP"$ +$ID,-2$$ID,-2$ 21,617 $TR,"Compiler"$ +$ID,2$ 1,497 $LK,"Assembler.CPP.Z","FI:D:/TempleOS/Compiler/Assembler.CPP"$ + 5,121 $LK,"BackEnd.CPP.Z","FI:D:/TempleOS/Compiler/BackEnd.CPP"$ + 695 $LK,"CmpAsm.CPP.Z","FI:D:/TempleOS/Compiler/CmpAsm.CPP"$ + 55 $LK,"CmpExts.CPP.Z","FI:D:/TempleOS/Compiler/CmpExts.CPP"$ + 21 $LK,"CmpGlbls.CPP.Z","FI:D:/TempleOS/Compiler/CmpGlbls.CPP"$ + 745 $LK,"CmpInit.CPP.Z","FI:D:/TempleOS/Compiler/CmpInit.CPP"$ + 702 $LK,"CmpMain.CPP.Z","FI:D:/TempleOS/Compiler/CmpMain.CPP"$ + 68 $LK,"CmpQueVect.CPP.Z","FI:D:/TempleOS/Compiler/CmpQueVect.CPP"$ + 510 $LK,"CodeGen.CPP.Z","FI:D:/TempleOS/Compiler/CodeGen.CPP"$ + 80 $LK,"Directives.CPP.Z","FI:D:/TempleOS/Compiler/Directives.CPP"$ + 1,298 $LK,"ExpParser.CPP.Z","FI:D:/TempleOS/Compiler/ExpParser.CPP"$ + 159 $LK,"Hash1b.CPP.Z","FI:D:/TempleOS/Compiler/Hash1b.CPP"$ + 1,703 $LK,"Lex.CPP.Z","FI:D:/TempleOS/Compiler/Lex.CPP"$ + 2,211 $LK,"OptPass012.CPP.Z","FI:D:/TempleOS/Compiler/OptPass012.CPP"$ + 652 $LK,"OptPass3.CPP.Z","FI:D:/TempleOS/Compiler/OptPass3.CPP"$ + 853 $LK,"OptPass4.CPP.Z","FI:D:/TempleOS/Compiler/OptPass4.CPP"$ + 172 $LK,"OptPass5.CPP.Z","FI:D:/TempleOS/Compiler/OptPass5.CPP"$ + 267 $LK,"OptPass6.CPP.Z","FI:D:/TempleOS/Compiler/OptPass6.CPP"$ + 1,340 $LK,"OptPass789A.CPP.Z","FI:D:/TempleOS/Compiler/OptPass789A.CPP"$ + 2,057 $LK,"StmtParser.CPP.Z","FI:D:/TempleOS/Compiler/StmtParser.CPP"$ + 898 $LK,"Unassembler.CPP.Z","FI:D:/TempleOS/Compiler/Unassembler.CPP"$ + 402 $LK,"CmpDefs.HPP.Z","FI:D:/TempleOS/Compiler/CmpDefs.HPP"$ + 85 $LK,"Compiler.HPP.Z","FI:D:/TempleOS/Compiler/Compiler.HPP"$ + 26 $LK,"Compiler.PRJ.Z","FI:D:/TempleOS/Compiler/Compiler.PRJ"$ +$ID,-2$ 27,073 $TR,"Demo"$ +$ID,2$ 2,235 $TR,"AcctExample"$ +$ID,2$ 903 $TR,"TAD"$ +$ID,2$ 822 $TR,"Archive"$ +$ID,2$ 489 $LK,"FileSysISO3.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Archive/FileSysISO3.CPP"$ + 218 $LK,"USB.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Archive/USB.CPP"$ + 115 $LK,"USB1a.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Archive/USB1a.CPP"$ +$ID,-2$ 21 $LK,"Adam3aLocalize.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Adam3aLocalize.CPP"$ + 55 $LK,"MakeDistro.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/MakeDistro.CPP"$ + 5 $LK,"Registry.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TAD/Registry.CPP"$ +$ID,-2$ 14 $LK,"Adam3.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3.CPP"$ + 10 $LK,"Adam3bPkgs.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3bPkgs.CPP"$ + 267 $LK,"Adam3dKeyPlugIns.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3dKeyPlugIns.CPP"$ + 10 $LK,"Adam3eWrappers.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3eWrappers.CPP"$ + 61 $LK,"Adam3fSys.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/Adam3fSys.CPP"$ + 13 $LK,"DoItOnce.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/DoItOnce.CPP"$ + 437 $LK,"TSAdam.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSAdam.CPP"$ + 520 $LK,"TSDistro.CPP.Z","FI:D:/TempleOS/Demo/AcctExample/TSDistro.CPP"$ +$ID,-2$ 422 $TR,"Asm"$ +$ID,2$ 82 $LK,"AsmAndC.CPP.Z","FI:D:/TempleOS/Demo/Asm/AsmAndC.CPP"$ + 99 $LK,"AsmAndC2.CPP.Z","FI:D:/TempleOS/Demo/Asm/AsmAndC2.CPP"$ + 53 $LK,"AsmHelloWorld.CPP.Z","FI:D:/TempleOS/Demo/Asm/AsmHelloWorld.CPP"$ + 49 $LK,"BuzzFizz.CPP.Z","FI:D:/TempleOS/Demo/Asm/BuzzFizz.CPP"$ + 24 $LK,"DivByHand.CPP.Z","FI:D:/TempleOS/Demo/Asm/DivByHand.CPP"$ + 71 $LK,"MulByHand.CPP.Z","FI:D:/TempleOS/Demo/Asm/MulByHand.CPP"$ + 44 $LK,"PutDec.CPP.Z","FI:D:/TempleOS/Demo/Asm/PutDec.CPP"$ +$ID,-2$ 111 $TR,"AutoFile"$ +$ID,2$ 16 $LK,"AFDir.AUT.Z","FI:D:/TempleOS/Demo/AutoFile/AFDir.AUT"$ + 29 $LK,"AFEd.AUT.Z","FI:D:/TempleOS/Demo/AutoFile/AFEd.AUT"$ + 27 $LK,"AFPopUpWait.AUT.Z","FI:D:/TempleOS/Demo/AutoFile/AFPopUpWait.AUT"$ + 12 $LK,"AFProfile.AUT.Z","FI:D:/TempleOS/Demo/AutoFile/AFProfile.AUT"$ + 13 $LK,"AFPopUp.CPP.Z","FI:D:/TempleOS/Demo/AutoFile/AFPopUp.CPP"$ + 14 $LK,"AFSetIP.CPP.Z","FI:D:/TempleOS/Demo/AutoFile/AFSetIP.CPP"$ +$ID,-2$ 627 $TR,"Doc"$ +$ID,2$ 94 $LK,"CallBack.CPP.Z","FI:D:/TempleOS/Demo/Doc/CallBack.CPP"$ + 36 $LK,"CallBackAux2.CPP.Z","FI:D:/TempleOS/Demo/Doc/CallBackAux2.CPP"$ + 39 $LK,"CursorMove.CPP.Z","FI:D:/TempleOS/Demo/Doc/CursorMove.CPP"$ + 65 $LK,"Data.CPP.Z","FI:D:/TempleOS/Demo/Doc/Data.CPP"$ + 25 $LK,"DefineStr.CPP.Z","FI:D:/TempleOS/Demo/Doc/DefineStr.CPP"$ + 69 $LK,"FileRead.CPP.Z","FI:D:/TempleOS/Demo/Doc/FileRead.CPP"$ + 45 $LK,"Form.CPP.Z","FI:D:/TempleOS/Demo/Doc/Form.CPP"$ + 77 $LK,"MenuButton.CPP.Z","FI:D:/TempleOS/Demo/Doc/MenuButton.CPP"$ + 35 $LK,"MenuSprite.CPP.Z","FI:D:/TempleOS/Demo/Doc/MenuSprite.CPP"$ + 25 $LK,"TextDemo.CPP.Z","FI:D:/TempleOS/Demo/Doc/TextDemo.CPP"$ + 32 $LK,"TreeDemo.CPP.Z","FI:D:/TempleOS/Demo/Doc/TreeDemo.CPP"$ + 85 $LK,"UnusedDefine.CPP.Z","FI:D:/TempleOS/Demo/Doc/UnusedDefine.CPP"$ +$ID,-2$ 176 $TR,"Dsk"$ +$ID,2$ 69 $LK,"DataBase.CPP.Z","FI:D:/TempleOS/Demo/Dsk/DataBase.CPP"$ + 28 $LK,"FPrintF.CPP.Z","FI:D:/TempleOS/Demo/Dsk/FPrintF.CPP"$ + 20 $LK,"OrderedIO.CPP.Z","FI:D:/TempleOS/Demo/Dsk/OrderedIO.CPP"$ + 42 $LK,"Raw.CPP.Z","FI:D:/TempleOS/Demo/Dsk/Raw.CPP"$ + 17 $LK,"UnusedSpaceRep.CPP.Z","FI:D:/TempleOS/Demo/Dsk/UnusedSpaceRep.CPP"$ +$ID,-2$ 11,002 $TR,"GameStarters"$ +$ID,2$ 172 $TR,"Stadium"$ +$ID,2$ 141 $LK,"Stadium.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Stadium/Stadium.CPP"$ + 31 $LK,"StadiumGen.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Stadium/StadiumGen.CPP"$ +$ID,-2$ 328 $LK,"BigGuns.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/BigGuns.CPP"$ + 245 $LK,"BirdLand.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/BirdLand.CPP"$ + 152 $LK,"BlackDiamond.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/BlackDiamond.CPP"$ + 246 $LK,"Bomber.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Bomber.CPP"$ + 1,046 $LK,"Chess.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Chess.CPP"$ + 257 $LK,"ChessNet.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/ChessNet.CPP"$ + 125 $LK,"CircleTrace.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/CircleTrace.CPP"$ + 172 $LK,"Coach.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Coach.CPP"$ + 168 $LK,"Collision.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Collision.CPP"$ + 468 $LK,"DunGen.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/DunGen.CPP"$ + 990 $LK,"EagleDive.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/EagleDive.CPP"$ + 569 $LK,"FPS.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/FPS.CPP"$ + 164 $LK,"Halogen.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Halogen.CPP"$ + 190 $LK,"MassSpring.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/MassSpring.CPP"$ + 231 $LK,"MissileDefense.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/MissileDefense.CPP"$ + 770 $LK,"Navy.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Navy.CPP"$ + 193 $LK,"RainDrops.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/RainDrops.CPP"$ + 523 $LK,"RawHide.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/RawHide.CPP"$ + 193 $LK,"Rocket.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Rocket.CPP"$ + 306 $LK,"RocketScience.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/RocketScience.CPP"$ + 683 $LK,"Rocks.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Rocks.CPP"$ + 139 $LK,"SpaceShip.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/SpaceShip.CPP"$ + 408 $LK,"Squirt.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Squirt.CPP"$ + 206 $LK,"TheDead.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/TheDead.CPP"$ + 125 $LK,"TicTacToe.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/TicTacToe.CPP"$ + 332 $LK,"Varoom.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Varoom.CPP"$ + 372 $LK,"WarGame.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/WarGame.CPP"$ + 532 $LK,"Wenceslas.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Wenceslas.CPP"$ + 174 $LK,"Whap.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Whap.CPP"$ + 201 $LK,"Zing.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/Zing.CPP"$ + 322 $LK,"ZoneOut.CPP.Z","FI:D:/TempleOS/Demo/GameStarters/ZoneOut.CPP"$ +$ID,-2$ 5,921 $TR,"Graphics"$ +$ID,2$ 118 $LK,"3DPoly.CPP.Z","FI:D:/TempleOS/Demo/Graphics/3DPoly.CPP"$ + 33 $LK,"BSpline.CPP.Z","FI:D:/TempleOS/Demo/Graphics/BSpline.CPP"$ + 242 $LK,"Bling.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Bling.CPP"$ + 42 $LK,"Blot.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Blot.CPP"$ + 58 $LK,"Bounce.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Bounce.CPP"$ + 54 $LK,"Box.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Box.CPP"$ + 65 $LK,"CPUPlot.CPP.Z","FI:D:/TempleOS/Demo/Graphics/CPUPlot.CPP"$ + 324 $LK,"Camp.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Camp.CPP"$ + 28 $LK,"CaptureScreen.CPP.Z","FI:D:/TempleOS/Demo/Graphics/CaptureScreen.CPP"$ + 50 $LK,"Cartesian.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Cartesian.CPP"$ + 36 $LK,"CharGraphics.CPP.Z","FI:D:/TempleOS/Demo/Graphics/CharGraphics.CPP"$ + 1,187 $LK,"Circuit.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Circuit.CPP"$ + 120 $LK,"CommonAncestor.CPP.Z","FI:D:/TempleOS/Demo/Graphics/CommonAncestor.CPP"$ + 17 $LK,"Dither.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Dither.CPP"$ + 49 $LK,"Doodle.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Doodle.CPP"$ + 15 $LK,"DotNet.CPP.Z","FI:D:/TempleOS/Demo/Graphics/DotNet.CPP"$ + 109 $LK,"EdCSprite.CPP.Z","FI:D:/TempleOS/Demo/Graphics/EdCSprite.CPP"$ + 51 $LK,"Extents.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Extents.CPP"$ + 233 $LK,"Flowers.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Flowers.CPP"$ + 143 $LK,"FontEd.CPP.Z","FI:D:/TempleOS/Demo/Graphics/FontEd.CPP"$ + 55 $LK,"Golf.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Golf.CPP"$ + 142 $LK,"Hanoi.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Hanoi.CPP"$ + 98 $LK,"Life.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Life.CPP"$ + 27 $LK,"Lines.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Lines.CPP"$ + 52 $LK,"Logo.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Logo.CPP"$ + 83 $LK,"LowPassFilter.CPP.Z","FI:D:/TempleOS/Demo/Graphics/LowPassFilter.CPP"$ + 105 $LK,"MathAudioDemo.CPP.Z","FI:D:/TempleOS/Demo/Graphics/MathAudioDemo.CPP"$ + 97 $LK,"Mountain.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Mountain.CPP"$ + 22 $LK,"NeatTrick.CPP.Z","FI:D:/TempleOS/Demo/Graphics/NeatTrick.CPP"$ + 28 $LK,"Palette.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Palette.CPP"$ + 102 $LK,"Pic2ASCII.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Pic2ASCII.CPP"$ + 98 $LK,"Pick.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Pick.CPP"$ + 331 $LK,"Pick3D.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Pick3D.CPP"$ + 93 $LK,"PixelCollision.CPP.Z","FI:D:/TempleOS/Demo/Graphics/PixelCollision.CPP"$ + 172 $LK,"PoleZeros.CPP.Z","FI:D:/TempleOS/Demo/Graphics/PoleZeros.CPP"$ + 83 $LK,"PredatorPrey.CPP.Z","FI:D:/TempleOS/Demo/Graphics/PredatorPrey.CPP"$ + 78 $LK,"RotateTank.CPP.Z","FI:D:/TempleOS/Demo/Graphics/RotateTank.CPP"$ + 72 $LK,"ScrollBars.CPP.Z","FI:D:/TempleOS/Demo/Graphics/ScrollBars.CPP"$ + 181 $LK,"Shading.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Shading.CPP"$ + 109 $LK,"Shadow.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Shadow.CPP"$ + 112 $LK,"SliderCtrl.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SliderCtrl.CPP"$ + 50 $LK,"Speedline.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Speedline.CPP"$ + 67 $LK,"SpritePlot.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePlot.CPP"$ + 63 $LK,"SpritePlot3D.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$ + 47 $LK,"SpritePut.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePut.CPP"$ + 29 $LK,"SpritePutExt.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpritePutExt.CPP"$ + 23 $LK,"SpriteText.CPP.Z","FI:D:/TempleOS/Demo/Graphics/SpriteText.CPP"$ + 62 $LK,"Symmetry.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Symmetry.CPP"$ + 220 $LK,"Transform.CPP.Z","FI:D:/TempleOS/Demo/Graphics/Transform.CPP"$ + 104 $LK,"WallPaperCtrl.CPP.Z","FI:D:/TempleOS/Demo/Graphics/WallPaperCtrl.CPP"$ + 119 $LK,"WallPaperFish.CPP.Z","FI:D:/TempleOS/Demo/Graphics/WallPaperFish.CPP"$ + 23 $LK,"WinZBuf.CPP.Z","FI:D:/TempleOS/Demo/Graphics/WinZBuf.CPP"$ +$ID,-2$ 1,442 $TR,"Lectures"$ +$ID,2$ 54 $LK,"AndNotMod.CPP.Z","FI:D:/TempleOS/Demo/Lectures/AndNotMod.CPP"$ + 104 $LK,"FixedPoint.CPP.Z","FI:D:/TempleOS/Demo/Lectures/FixedPoint.CPP"$ + 165 $LK,"FixedPointAdvanced.CPP.Z","FI:D:/TempleOS/Demo/Lectures/FixedPointAdvanced.CPP"$ + 77 $LK,"GraphicsCPULoad.CPP.Z","FI:D:/TempleOS/Demo/Lectures/GraphicsCPULoad.CPP"$ + 91 $LK,"InterruptDemo.CPP.Z","FI:D:/TempleOS/Demo/Lectures/InterruptDemo.CPP"$ + 225 $LK,"MiniCompiler.CPP.Z","FI:D:/TempleOS/Demo/Lectures/MiniCompiler.CPP"$ + 136 $LK,"MiniGrLib.CPP.Z","FI:D:/TempleOS/Demo/Lectures/MiniGrLib.CPP"$ + 116 $LK,"Optimization.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Optimization.CPP"$ + 74 $LK,"PCIInterrupts.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PCIInterrupts.CPP"$ + 49 $LK,"PageTableEntries1.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PageTableEntries1.CPP"$ + 47 $LK,"PageTableEntries2.CPP.Z","FI:D:/TempleOS/Demo/Lectures/PageTableEntries2.CPP"$ + 84 $LK,"Ring3.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Ring3.CPP"$ + 56 $LK,"ScreenMemory.CPP.Z","FI:D:/TempleOS/Demo/Lectures/ScreenMemory.CPP"$ + 110 $LK,"Spinning.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Spinning.CPP"$ + 54 $LK,"Uncached.CPP.Z","FI:D:/TempleOS/Demo/Lectures/Uncached.CPP"$ +$ID,-2$ 1,184 $TR,"MultiCore"$ +$ID,2$ 195 $LK,"Clouds.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Clouds.CPP"$ + 25 $LK,"Interrupts.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Interrupts.CPP"$ + 132 $LK,"Layers3DJob.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Layers3DJob.CPP"$ + 84 $LK,"LayersSpawn.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/LayersSpawn.CPP"$ + 58 $LK,"LoadTest.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/LoadTest.CPP"$ + 65 $LK,"Lock.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Lock.CPP"$ + 86 $LK,"MPAdd.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/MPAdd.CPP"$ + 19 $LK,"MPPrintF.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/MPPrintF.CPP"$ + 64 $LK,"Noise.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Noise.CPP"$ + 99 $LK,"Palindrome.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Palindrome.CPP"$ + 77 $LK,"Primes.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Primes.CPP"$ + 166 $LK,"RadixSort.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/RadixSort.CPP"$ + 114 $LK,"Sort.CPP.Z","FI:D:/TempleOS/Demo/MultiCore/Sort.CPP"$ +$ID,-2$ 183 $TR,"OldSchool"$ +$ID,2$ 63 $TR,"Demo1"$ +$ID,2$ 9 $LK,"MD1.CPP.Z","FI:D:/TempleOS/Demo/OldSchool/Demo1/MD1.CPP"$ + 9 $LK,"MD2.CPP.Z","FI:D:/TempleOS/Demo/OldSchool/Demo1/MD2.CPP"$ + 29 $LK,"MDMain.CPP.Z","FI:D:/TempleOS/Demo/OldSchool/Demo1/MDMain.CPP"$ + 2 $LK,"ModuleDemo.HPP.Z","FI:D:/TempleOS/Demo/OldSchool/Demo1/ModuleDemo.HPP"$ + 14 $LK,"ModuleDemo.PRJ.Z","FI:D:/TempleOS/Demo/OldSchool/Demo1/ModuleDemo.PRJ"$ +$ID,-2$ 120 $TR,"Demo2"$ +$ID,2$ 25 $LK,"MakeFile.CPP.Z","FI:D:/TempleOS/Demo/OldSchool/Demo2/MakeFile.CPP"$ + 12 $LK,"ObjDemo.HPP.Z","FI:D:/TempleOS/Demo/OldSchool/Demo2/ObjDemo.HPP"$ + 13 $LK,"OD1.PRJ.Z","FI:D:/TempleOS/Demo/OldSchool/Demo2/OD1.PRJ"$ + 32 $LK,"OD2.PRJ.Z","FI:D:/TempleOS/Demo/OldSchool/Demo2/OD2.PRJ"$ + 38 $LK,"ODMain.PRJ.Z","FI:D:/TempleOS/Demo/OldSchool/Demo2/ODMain.PRJ"$ +$ID,-2$$ID,-2$ 26 $TR,"Shared"$ +$ID,2$ 26 $LK,"TreeDemoJoin.CPP.Z","FI:D:/TempleOS/Demo/Shared/TreeDemoJoin.CPP"$ +$ID,-2$ 1,180 $TR,"Snd"$ +$ID,2$ 52 $LK,"ASCIIOrgan.CPP.Z","FI:D:/TempleOS/Demo/Snd/ASCIIOrgan.CPP"$ + 69 $LK,"BeatFreq.CPP.Z","FI:D:/TempleOS/Demo/Snd/BeatFreq.CPP"$ + 17 $LK,"Chords.CPP.Z","FI:D:/TempleOS/Demo/Snd/Chords.CPP"$ + 97 $LK,"Echo.CPP.Z","FI:D:/TempleOS/Demo/Snd/Echo.CPP"$ + 18 $LK,"Guitar.CPP.Z","FI:D:/TempleOS/Demo/Snd/Guitar.CPP"$ + 182 $LK,"MorseCode.CPP.Z","FI:D:/TempleOS/Demo/Snd/MorseCode.CPP"$ + 42 $LK,"OhGreat.CPP.Z","FI:D:/TempleOS/Demo/Snd/OhGreat.CPP"$ + 99 $LK,"PolyPhonic.CPP.Z","FI:D:/TempleOS/Demo/Snd/PolyPhonic.CPP"$ + 121 $LK,"Record.CPP.Z","FI:D:/TempleOS/Demo/Snd/Record.CPP"$ + 47 $LK,"SndScope.CPP.Z","FI:D:/TempleOS/Demo/Snd/SndScope.CPP"$ + 281 $LK,"Synth.CPP.Z","FI:D:/TempleOS/Demo/Snd/Synth.CPP"$ + 155 $LK,"WaterFowl.CPP.Z","FI:D:/TempleOS/Demo/Snd/WaterFowl.CPP"$ +$ID,-2$ 508 $TR,"WebLogExample"$ +$ID,2$ 444 $LK,"WebLogRep.CPP.Z","FI:D:/TempleOS/Demo/WebLogExample/WebLogRep.CPP"$ + 64 $LK,"WebLogScramble.CPP.Z","FI:D:/TempleOS/Demo/WebLogExample/WebLogScramble.CPP"$ +$ID,-2$ 82 $LK,"ClassMeta.CPP.Z","FI:D:/TempleOS/Demo/ClassMeta.CPP"$ + 38 $LK,"CompileDemo.CPP.Z","FI:D:/TempleOS/Demo/CompileDemo.CPP"$ + 46 $LK,"DateTime.CPP.Z","FI:D:/TempleOS/Demo/DateTime.CPP"$ + 29 $LK,"DbgDemo.CPP.Z","FI:D:/TempleOS/Demo/DbgDemo.CPP"$ + 41 $LK,"Define.CPP.Z","FI:D:/TempleOS/Demo/Define.CPP"$ + 78 $LK,"Digits.CPP.Z","FI:D:/TempleOS/Demo/Digits.CPP"$ + 68 $LK,"Exceptions.CPP.Z","FI:D:/TempleOS/Demo/Exceptions.CPP"$ + 37 $LK,"ExtendedChars.CPP.Z","FI:D:/TempleOS/Demo/ExtendedChars.CPP"$ + 95 $LK,"GlblVars.CPP.Z","FI:D:/TempleOS/Demo/GlblVars.CPP"$ + 45 $LK,"KeyBitMap.CPP.Z","FI:D:/TempleOS/Demo/KeyBitMap.CPP"$ + 373 $LK,"MagicPairs.CPP.Z","FI:D:/TempleOS/Demo/MagicPairs.CPP"$ + 55 $LK,"MakeDistro.CPP.Z","FI:D:/TempleOS/Demo/MakeDistro.CPP"$ + 108 $LK,"Maze.CPP.Z","FI:D:/TempleOS/Demo/Maze.CPP"$ + 21 $LK,"MsgLoop.CPP.Z","FI:D:/TempleOS/Demo/MsgLoop.CPP"$ + 20 $LK,"ParenWarn.CPP.Z","FI:D:/TempleOS/Demo/ParenWarn.CPP"$ + 65 $LK,"PhoneNumWords.CPP.Z","FI:D:/TempleOS/Demo/PhoneNumWords.CPP"$ + 34 $LK,"PrintF.CPP.Z","FI:D:/TempleOS/Demo/PrintF.CPP"$ + 37 $LK,"Progress.CPP.Z","FI:D:/TempleOS/Demo/Progress.CPP"$ + 26 $LK,"Prompt.CPP.Z","FI:D:/TempleOS/Demo/Prompt.CPP"$ + 90 $LK,"PullDownMenu.CPP.Z","FI:D:/TempleOS/Demo/PullDownMenu.CPP"$ + 27 $LK,"RegistryDemo.CPP.Z","FI:D:/TempleOS/Demo/RegistryDemo.CPP"$ + 26 $LK,"ScreenCodes.CPP.Z","FI:D:/TempleOS/Demo/ScreenCodes.CPP"$ + 66 $LK,"Spy.CPP.Z","FI:D:/TempleOS/Demo/Spy.CPP"$ + 55 $LK,"StkGrow.CPP.Z","FI:D:/TempleOS/Demo/StkGrow.CPP"$ + 33 $LK,"SubIntAccess.CPP.Z","FI:D:/TempleOS/Demo/SubIntAccess.CPP"$ + 92 $LK,"SuggestSpelling.CPP.Z","FI:D:/TempleOS/Demo/SuggestSpelling.CPP"$ + 45 $LK,"TimeIns.CPP.Z","FI:D:/TempleOS/Demo/TimeIns.CPP"$ + 168 $LK,"WinMgr2.CPP.Z","FI:D:/TempleOS/Demo/WinMgr2.CPP"$ + 156 $LK,"WordSearch.CPP.Z","FI:D:/TempleOS/Demo/WordSearch.CPP"$ +$ID,-2$ 0 $TR,"Doc"$ +$ID,2$$ID,-2$ 25,644 $TR,"Kernel"$ +$ID,2$ 6,050 $TR,"Dsk"$ +$ID,2$ 730 $LK,"Dsk1a.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1a.CPP"$ + 518 $LK,"Dsk1b.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1b.CPP"$ + 390 $LK,"Dsk1c.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/Dsk1c.CPP"$ + 955 $LK,"DskATA.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskATA.CPP"$ + 319 $LK,"DskAddDev.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskAddDev.CPP"$ + 263 $LK,"DskCFile.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskCFile.CPP"$ + 161 $LK,"DskCache.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskCache.CPP"$ + 269 $LK,"DskDir.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskDir.CPP"$ + 374 $LK,"DskStr.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/DskStr.CPP"$ + 1,005 $LK,"FileSysFAT.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysFAT.CPP"$ + 315 $LK,"FileSysISO1.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysISO1.CPP"$ + 719 $LK,"FileSysNative.CPP.Z","FI:D:/TempleOS/Kernel/Dsk/FileSysNative.CPP"$ + 32 $LK,"ATADef.HPP.Z","FI:D:/TempleOS/Kernel/Dsk/ATADef.HPP"$ +$ID,-2$ 1,263 $TR,"KbdMouse"$ +$ID,2$ 129 $LK,"InputPointer.CPP.Z","FI:D:/TempleOS/Kernel/KbdMouse/InputPointer.CPP"$ + 547 $LK,"Keyboard.CPP.Z","FI:D:/TempleOS/Kernel/KbdMouse/Keyboard.CPP"$ + 234 $LK,"Message.CPP.Z","FI:D:/TempleOS/Kernel/KbdMouse/Message.CPP"$ + 353 $LK,"Mouse.CPP.Z","FI:D:/TempleOS/Kernel/KbdMouse/Mouse.CPP"$ +$ID,-2$ 13 $LK,"Adam1.CPP.Z","FI:D:/TempleOS/Kernel/Adam1.CPP"$ + 297 $LK,"BIOS32.CPP.Z","FI:D:/TempleOS/Kernel/BIOS32.CPP"$ + 325 $LK,"Compress.CPP.Z","FI:D:/TempleOS/Kernel/Compress.CPP"$ + 484 $LK,"Date.CPP.Z","FI:D:/TempleOS/Kernel/Date.CPP"$ + 702 $LK,"Dbg1a.CPP.Z","FI:D:/TempleOS/Kernel/Dbg1a.CPP"$ + 136 $LK,"Define1a.CPP.Z","FI:D:/TempleOS/Kernel/Define1a.CPP"$ + 280 $LK,"Display.CPP.Z","FI:D:/TempleOS/Kernel/Display.CPP"$ + 337 $LK,"EdLite.CPP.Z","FI:D:/TempleOS/Kernel/EdLite.CPP"$ + 224 $LK,"Except.CPP.Z","FI:D:/TempleOS/Kernel/Except.CPP"$ + 170 $LK,"FIFO.CPP.Z","FI:D:/TempleOS/Kernel/FIFO.CPP"$ + 262 $LK,"Font8x8.CPP.Z","FI:D:/TempleOS/Kernel/Font8x8.CPP"$ + 810 $LK,"Hash1a.CPP.Z","FI:D:/TempleOS/Kernel/Hash1a.CPP"$ + 214 $LK,"Interrupts.CPP.Z","FI:D:/TempleOS/Kernel/Interrupts.CPP"$ + 222 $LK,"KCfg.CPP.Z","FI:D:/TempleOS/Kernel/KCfg.CPP"$ + 248 $LK,"KEnd.CPP.Z","FI:D:/TempleOS/Kernel/KEnd.CPP"$ + 100 $LK,"KExts.CPP.Z","FI:D:/TempleOS/Kernel/KExts.CPP"$ + 141 $LK,"KGlbls.CPP.Z","FI:D:/TempleOS/Kernel/KGlbls.CPP"$ + 524 $LK,"KStart.CPP.Z","FI:D:/TempleOS/Kernel/KStart.CPP"$ + 622 $LK,"Math1a.CPP.Z","FI:D:/TempleOS/Kernel/Math1a.CPP"$ + 227 $LK,"Math1b.CPP.Z","FI:D:/TempleOS/Kernel/Math1b.CPP"$ + 1,426 $LK,"Memory.CPP.Z","FI:D:/TempleOS/Kernel/Memory.CPP"$ + 369 $LK,"Misc1a.CPP.Z","FI:D:/TempleOS/Kernel/Misc1a.CPP"$ + 526 $LK,"MultiProc.CPP.Z","FI:D:/TempleOS/Kernel/MultiProc.CPP"$ + 279 $LK,"PSect.CPP.Z","FI:D:/TempleOS/Kernel/PSect.CPP"$ + 248 $LK,"QSort.CPP.Z","FI:D:/TempleOS/Kernel/QSort.CPP"$ + 411 $LK,"Scheduler.CPP.Z","FI:D:/TempleOS/Kernel/Scheduler.CPP"$ + 2,409 $LK,"Str1a.CPP.Z","FI:D:/TempleOS/Kernel/Str1a.CPP"$ + 571 $LK,"Task1a.CPP.Z","FI:D:/TempleOS/Kernel/Task1a.CPP"$ + 423 $LK,"TaskCmd.CPP.Z","FI:D:/TempleOS/Kernel/TaskCmd.CPP"$ + 331 $LK,"Utils1a.CPP.Z","FI:D:/TempleOS/Kernel/Utils1a.CPP"$ + 15 $LK,"AOT.HPP.Z","FI:D:/TempleOS/Kernel/AOT.HPP"$ + 3 $LK,"AOTAdam.HPP.Z","FI:D:/TempleOS/Kernel/AOTAdam.HPP"$ + 3,746 $LK,"Adam1a.HPP.Z","FI:D:/TempleOS/Kernel/Adam1a.HPP"$ + 303 $LK,"Adam1b.HPP.Z","FI:D:/TempleOS/Kernel/Adam1b.HPP"$ + 832 $LK,"Adam1c.HPP.Z","FI:D:/TempleOS/Kernel/Adam1c.HPP"$ + 31 $LK,"BootDefs.HPP.Z","FI:D:/TempleOS/Kernel/BootDefs.HPP"$ + 70 $LK,"Kernel.PRJ.Z","FI:D:/TempleOS/Kernel/Kernel.PRJ"$ +$ID,-2$ 3,138 $TR,"Misc"$ +$ID,2$ 701 $TR,"Tour"$ +$ID,2$ 40 $LK,"Tour.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour.AUT"$ + 109 $LK,"Tour1.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour1.AUT"$ + 124 $LK,"Tour2.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour2.AUT"$ + 113 $LK,"Tour3.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour3.AUT"$ + 38 $LK,"Tour4.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour4.AUT"$ + 65 $LK,"Tour5.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour5.AUT"$ + 77 $LK,"Tour6.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour6.AUT"$ + 40 $LK,"Tour7.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour7.AUT"$ + 55 $LK,"Tour8.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour8.AUT"$ + 29 $LK,"Tour9.AUT.Z","FI:D:/TempleOS/Misc/Tour/Tour9.AUT"$ + 11 $LK,"TourA.AUT.Z","FI:D:/TempleOS/Misc/Tour/TourA.AUT"$ +$ID,-2$ 32 $LK,"Dollar.CPP.Z","FI:D:/TempleOS/Misc/Dollar.CPP"$ + 2,405 $LK,"OSTestSuite.CPP.Z","FI:D:/TempleOS/Misc/OSTestSuite.CPP"$ +$ID,-2$$ID,-2$ \ No newline at end of file diff --git a/TempleOS/Accts/TS/Wb2/Menu.BMP b/TempleOS/Accts/TS/Wb2/Menu.BMP new file mode 100644 index 0000000000000000000000000000000000000000..7316b6384e1990f79d33aaf853dc9ed28c060c26 GIT binary patch literal 63780 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 aS>8eFBS;?L2lJWUu?e!h3lwCaD*ynBrbX}o literal 0 HcmV?d00001 diff --git a/TempleOS/Accts/TS/Wb2/ScreenShots.TXT b/TempleOS/Accts/TS/Wb2/ScreenShots.TXT new file mode 100644 index 0000000..58b635c --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/ScreenShots.TXT @@ -0,0 +1,15 @@ +$WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ + +$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOS.BMP"$ + + + +$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/Menu.BMP"$ +$TX+CX,"Your personal menu is a document with icons."$ + + + +$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/Tanks.BMP"$ +$TX+CX,"This is a tank war game."$ + + diff --git a/TempleOS/Accts/TS/Wb2/Tanks.BMP b/TempleOS/Accts/TS/Wb2/Tanks.BMP new file mode 100644 index 0000000000000000000000000000000000000000..2bbdeb05fea753b93ef4c7a2dcd7b79cff1654f7 GIT binary patch literal 90050 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 G6#xK7e{Y2V literal 0 HcmV?d00001 diff --git a/TempleOS/Accts/TS/Wb2/TempleOS.BMP b/TempleOS/Accts/TS/Wb2/TempleOS.BMP new file mode 100644 index 0000000000000000000000000000000000000000..a8aeacd1838dd414c6185e6a51580820ac4064a5 GIT binary patch literal 55340 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 literal 0 HcmV?d00001 diff --git a/TempleOS/Accts/TS/Wb2/Tutorials.TXT b/TempleOS/Accts/TS/Wb2/Tutorials.TXT new file mode 100644 index 0000000..53e3d48 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/Tutorials.TXT @@ -0,0 +1,67 @@ +$WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ + +$HC,""$ + +$TX+CX,"Tour Part 1"$ + + + + + + + +$HC,""$ + +$TX+CX,"User Interface Tutorial Part 1"$ + + + + + + + +$HC,""$ + +$TX+CX,"User Interface Tutorial Part 2"$ + + + + + + + +$HC,""$ + +$TX+CX,"Programming Guide Part 1"$ + + + + + + + +$HC,""$ + +$TX+CX,"System Guide Part 1"$ + + + + + + + +$HC,""$ + +$TX+CX,"System Guide Part 2"$ + + + + + + + +$HC,""$ + +$TX+CX,"System Guide Part 3"$ + +Errata: Multicore timer IRQ is 1000 Hz. Nonmaskable IRQ is to HLT, not wake. diff --git a/TempleOS/Accts/TS/Wb2/index.TXT b/TempleOS/Accts/TS/Wb2/index.TXT new file mode 100644 index 0000000..7803ce5 --- /dev/null +++ b/TempleOS/Accts/TS/Wb2/index.TXT @@ -0,0 +1,82 @@ +$WW,1$$FG,5$$TX+CX+HTML,"TempleOS","http://www.templeos.org"$$FG$ + +$HI,"http://www.templeos.org/Wb/Accts/TS/Wb2/TempleOS.BMP"$ + +TempleOS is an $FG,4$$TX+HTML,"x86_64","http://en.wikipedia.org/wiki/Amd64#AMD64"$$FG$, multi-tasking, multi-cored, public domain, open source, $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$, single-address-map ($FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$), non-networked, PC operating system for recreational programming. + +A troll might ask, "Why not just use $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$? It was ring-0-only and single-address-map." Actually, they wouldn't because many people would say, "Cool idea! I'm gonna dust-off $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ right now and have some fun!" $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ is 16-bit with segmentation, though, which is awful. TempleOS is 64-bit, flat, non-segmented and multi-cored. It's like a modern, souped-up, multi-tasking, cross between $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ and a Commodore 64. It has a C64-like shell with a $LK,"dialect","FI:::/TempleOS/Doc/Differences.TXT"$ of C/C++ instead of BASIC. It was written from scratch, and not even ASCII was sacred -- it has 8-bit unsigned character source code to support European languages. Also, the source code has graphics. + +A troll might say, "But, it can crash!" We all used $FG,4$$TX+HTML,"DOS","http://en.wikipedia.org/wiki/DOS"$$FG$ for years and loved it. Computers even had a reset switch! Just think of the power of ring-0, muhahaha! Think of the speed and simplicity of $FG,4$$TX+HTML,"ring-0-only","http://en.wikipedia.org/wiki/Ring_(computer_security)"$$FG$ and $FG,4$$TX+HTML,"identity-mapping","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$. It's only $LK+D,"139,639","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,Kernel.PRJ","DD_TEMPLEOS_LOC"$ lines of code, including the compiler and can change tasks in half a microsecond because it doesn't mess with page tables or privilege levels. Inter-process communication is effortless because every task can access every other task's memory. + +It's fun having access to everything. When I was a teenager, I had a book, $FG,4$$TX+HTML,"Mapping the Commodore 64","http://unusedino.de/ec64/technical/project64/mapping_c64.html"$$FG$, that told what every location in memory did. I liked copying the ROM to RAM and poking around at the ROM BASIC's variables. Everybody directly poked the hardware ports. + +TempleOS is simpler than Linux and you can have hours of fun tinkering because all memory and ports are accessible. Memory is $FG,4$$TX+HTML,"identity-mapped","http://en.wikipedia.org/wiki/Identity_(mathematics)"$$FG$ at all times, so you can modify any task's memory from any other task. You can access all disk blocks, too. I had a blast using a C64 disk block editor to modify directories to un-delete files, when I was a kid. Maybe, you want to play with a raw-block database, or make your own file system? + +I wrote all $LK+D,"139,639","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,Kernel.PRJ","DD_TEMPLEOS_LOC"$ lines of TempleOS over the last $TX+D,"9.6","DD_TEMPLEOS_AGE"$ years, full-time. It was called, at various times, "$FG,4$$TX+HTML,"Hoppy","http://web.archive.org/web/*/http://www.simstructure.hare.com/*"$$FG$", "$FG,4$$TX+HTML,"The J Operating System","http://wayback.archive.org/web/*/http://www.justrighteous.org/*"$$FG$", "$FG,4$$TX+HTML,"LoseThos","http://web.archive.org/web/*/http://www.losethos.com/*"$$FG$" and "$FG,4$$TX+HTML,"SparrowOS","http://web.archive.org/web/*/http://www.sparrowos.com/*"$$FG$". Here are my $FG,4$$TX+HTML,"college transcripts","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. + + +$LK+CX,"It's ALIVE: How to reproduce the ISO.","FI:::/TempleOS/Demo/MakeDistro.CPP.Z"$ + + +$FG,2$$TX+CX+HTML,"Download TempleOS V1.00 - Std. Distro (24.0 MB)","http://www.templeos.org/TempleOSCD.ISO"$$FG$ + +Burn a CD/DVD from the TempleOSCD.ISO and boot it or run it in $FG,4$$TX+HTML,"VMware","https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0"$$FG$ or $FG,4$$TX+HTML,"VirtualBox","http://www.virtualbox.org"$$FG$ aiming the CD/DVD drive at TempleOSCD.ISO or for QEMU type: +>qemu-system-x86_64 -m 500 -cdrom TempleOSCD.ISO -boot d + + + +$FG,4$$TX+HTML,"Screen Shots","http://www.templeos.org/Wb/Accts/TS/Wb2/ScreenShots.html"$$FG$ + +$FG,4$$TX+HTML,"Game Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Games.html"$$FG$ + +$LK,"Introduction","FI:::/TempleOS/Doc/Welcome.TXT"$ + +$LK,"F.A.Q.","FI:::/TempleOS/Doc/Mysteries.TXT"$ + +$LK,"TempleOS Help","FI:::/TempleOS/Doc/HelpIndex.TXT"$ + +$LK,"Source Code By File","FF:::/TempleOS/Accts/TS/Wb2/LineCnt.TXT,KStart.CPP"$ + +$FG,4$$TX+HTML,"Source Code By Sym","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAlpha.html"$$FG$ + +$FG,4$$TX+HTML,"Source Code By Address","http://www.templeos.org/Wb/Accts/TS/Wb2/SymsAddress.html"$$FG$ + +$FG,4$$TX+HTML,"Source Code (Raw)","http://www.templeos.org/Wb/"$$FG$ + +$FG,4$$TX+HTML,"Tutorial Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Tutorials.html"$$FG$ + +$FG,4$$TX+HTML,"Hymn Videos","http://www.templeos.org/Wb/Accts/TS/Wb2/Hymns.html"$$FG$ + +$LK,"Change Log","FI:::/TempleOS/Doc/ChangeLog.TXT"$ + +$FG,4$$TX+HTML,"Blog","http://www.templeos.org/Wb/Accts/TS/Wb2/Blog.html"$$FG$ + +$LK,"About Trivial Solutions","FI:D:/TempleOS/Doc/TrivialSolutions.TXT"$ + + + + + + +$FG,2$$TX+CX+HTML,"Download SimStructure (7.71 MB)","http://www.templeos.org/files/SimStrSetUp.zip"$$FG$ + +SimStructure is a Windows free physics simulator. + + +$FG,2$$TX+CX+HTML,"Download InGodsTime (12.4 MB)","http://www.templeos.org/files/TSGodSetUp.zip"$$FG$ + +This is a Windows program for doing Biblical Tongues with a stopwatch. When you press a key, it reads a high-speed watch for a random number to pick words or passages. + + +$FG,2$$TX+CX+HTML,"Download TempleOS V1.00 - T.S. Company Internal Distro (24.6 MB)","http://www.templeos.org/TempleOSTS.ISO"$$FG$ + +This is the Trivial Solution internal company distro. Only run this on a virtual machine, not bare metal hardware because it's settings could cause problems. Enter >$LK,"TSInstall","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP.Z,TSInstall"$; >$LK,"TSUpgrade","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP.Z,TSUpgrade"$; at the command-line. +See $LK,"MakeDistrosAndBackUp","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP.Z,MakeDistrosAndBackUp"$() to reproduce the ISO's in $FG,4$E:/Wb$FG$. It makes this website, too. + + +$FG,8$ +* "Commodore 64" was a trademark of Commodore Business Machines. +* "Linux" is probably a trademark owned by Linus Torvalds. +* "VMware Player" and "VMware WorkStation" are trademarks of VMware, Inc. +* "VirtualBox" is a trademark of Oracle. +* "Windows" and "DOS" are trademark of MicroSoft Corp. diff --git a/SparrowOS/Adam/Adam2.CPP b/TempleOS/Adam/Adam2.CPP similarity index 65% rename from SparrowOS/Adam/Adam2.CPP rename to TempleOS/Adam/Adam2.CPP index 0ef719a..7cbd918 100644 --- a/SparrowOS/Adam/Adam2.CPP +++ b/TempleOS/Adam/Adam2.CPP @@ -2,58 +2,57 @@ #exe {OptOn(OPTf_WARN_DUP_TYPES);}; #help_index "Task/Login" -//Use Dbg("Type 'Go1;'"); to debug before window mgr is running. +//Use Dbg("Type 'G;'"); to debug before window mgr is running. -public F64 os_version=1.02; +public F64 os_version=1.00; -#include "AdamExt.HPP.Z" +#include "AdamExt.HPP" #include "Math2a" #include "Training" #include "Utils2a" #include "MathODE" -Cd("::/SparrowOS/Adam/Gr");; +Cd("::/TempleOS/Adam/Gr");; #include "Gr" -Cd("::/SparrowOS/Adam/Snd");; +Cd("::/TempleOS/Adam/Snd");; #include "Snd" -Cd("::/SparrowOS/Adam/Dsk");; +Cd("::/TempleOS/Adam/Dsk");; #include "Dsk2" -Cd("::/SparrowOS/Adam");; +Cd("::/TempleOS/Adam");; #include "Menu" #include "Window" #include "Dbg2a" -Cd("::/SparrowOS/Adam/Doc");; +Cd("::/TempleOS/Adam/Doc");; #include "Doc" LBts(&sys_run_level,RLf_DOC); -Cd("::/SparrowOS/Adam/Ctrls");; +Cd("::/TempleOS/Adam/Ctrls");; #include "Ctrls" -Cd("::/SparrowOS/Adam");; +Cd("::/TempleOS/Adam");; #include "AutoFile2a" #include "LogIn" -Cd("::/SparrowOS/Adam/WordStat");; +Cd("::/TempleOS/Adam/WordStat");; #include "WordStat" -Cd("::/SparrowOS/Adam");; +Cd("::/TempleOS/Adam");; #include "Profiler" #include "Hash2a" #include "TaskSettings" #include "DevInfo" #include "DocDefines" -//Dbg("Type 'Go1;'"); +//Dbg("Type 'G;'"); UseTermDoc; +SetWinVert(2,10); -adam_task->win_top=2; -adam_task->win_bottom=10; sys_winmgr_task=Spawn(&WinMgrTask,NULL,"Window Mgr"); LBts(&Fs->display_flags,DISPLAYf_CHILDREN_NOT_ON_TOP); LBts(&Fs->display_flags,DISPLAYf_SHOW); @@ -62,7 +61,7 @@ LBts(&sys_run_level,RLf_LOGIN); RegistryInit; LBts(&sys_run_level,RLf_REGISTRY); -Cd("::/SparrowOS/Adam");; +Cd("::/TempleOS/Adam");; #include "WallPaper" #exe {OptOff(OPTf_WARN_PAREN);}; #exe {OptOff(OPTf_WARN_DUP_TYPES);}; diff --git a/SparrowOS/Adam/AdamExt.HPP b/TempleOS/Adam/AdamExt.HPP similarity index 90% rename from SparrowOS/Adam/AdamExt.HPP rename to TempleOS/Adam/AdamExt.HPP index 337bcc2..a5cdfac 100644 --- a/SparrowOS/Adam/AdamExt.HPP +++ b/TempleOS/Adam/AdamExt.HPP @@ -1,4 +1,6 @@ extern Bool win_show_menu; +extern Bool SetWinVert(I64 top,I64 bottom,CTask *task=NULL); +extern Bool SetWinHorz(I64 left,I64 right,CTask *task=NULL); extern Bool WinToTop(CTask *task=NULL,Bool update_z_buf=TRUE); extern U0 GrPlot0(CDC *dc,I64 x,I64 y); extern U8 *DC2Sprite(CDC *tempb); @@ -7,6 +9,7 @@ extern U0 DrawTaskBorder(CTask *task); extern U0 DrawCtrls(CTask *task); extern U0 MgdSliderCtrl(CDoc *doc); extern U0 WinScrollsInit(CTask *task); +extern Bool BinRep(U8 *filename); extern I64 doc_tag_types[],doc_nontag_invisible_types[], doc_form_types[],doc_data_types[]; @@ -40,7 +43,7 @@ extern U0 DocDump(CDoc *doc,I64 uS_delay=0); extern CDocEntry *DocEntryCopy(CDoc *doc,CDocEntry *doc_e); extern U0 DocInsDoc(CDoc *doc,CDoc *doc2); extern U0 DocD(U8 *buf,I64 cnt=0x80); -extern U0 DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL); +extern Bool DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL); extern Bool DocFormDo(U8 *D,U8 *class_name,I64 doc_flags=0,U8 *header=NULL,U8 *footer=NULL); extern CDoc *DocCur(CTask *task=NULL); extern U0 DocClear(CDoc *doc=NULL); @@ -56,8 +59,9 @@ extern U0 DocUpdateTaskDocs(CTask *task); extern I64 PmtI64(U8 *msg,I64 dft,I64 lo=MIN_I64,I64 hi=MAX_I64); extern F64 PmtF64(U8 *msg,F64 dft,F64 lo=MIN_F64,F64 hi=MAX_F64); extern U0 ClassRep(U8 *class_name,U8 *d,I64 max_depth=2,Bool fun=FALSE,I64 offset=0); -extern U0 Ed(U8 *link_st=NULL); -extern U0 Plain(U8 *filename); +extern U8 *DocLinkFile(U8 *link_st,CTask *mem_task=NULL); +extern Bool Ed(U8 *link_st,I64 ed_flags=0); +extern Bool Plain(U8 *filename); extern U0 DocPutBMPFile(CDoc *doc=NULL,U8 *fname,Bool use_ms_paint_palette=FALSE); extern U0 WSFillIn(I64 n); @@ -92,7 +96,7 @@ extern CMenu *MenuPush(U8 *st); extern U0 MenuPop(); extern CMenu *MenuFilePush(U8 *filename); -extern U0 Noise(I64 mS,I64 min_freq,I64 max_freq,I64 waveform=WF_NOISE); +extern CTask *Noise(I64 mS,I64 min_freq,I64 max_freq,I64 waveform=WF_NOISE); extern CCtrl *CtrlFindUnique(CTask *task,I64 type); extern Bool CtrlInside(CCtrl *c,I64 x,I64 y); diff --git a/SparrowOS/Adam/AutoFile2a.CPP b/TempleOS/Adam/AutoFile2a.CPP similarity index 99% rename from SparrowOS/Adam/AutoFile2a.CPP rename to TempleOS/Adam/AutoFile2a.CPP index c2cd894..162dc37 100644 --- a/SparrowOS/Adam/AutoFile2a.CPP +++ b/TempleOS/Adam/AutoFile2a.CPP @@ -13,7 +13,7 @@ public U0 AFPmtStr(U8 *st) '' ch; st++; } else { - if (*st==CH_NEW_LINE) + if (*st=='\n') SPrintF(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); else if (*st==CH_SPACE) SPrintF(buf,"Press the '$$FG,GREEN$$$$FG$$' key"); diff --git a/SparrowOS/Adam/BinRep.CPP b/TempleOS/Adam/BinRep.CPP similarity index 78% rename from SparrowOS/Adam/BinRep.CPP rename to TempleOS/Adam/BinRep.CPP index 5604d14..fa8e4c5 100644 --- a/SparrowOS/Adam/BinRep.CPP +++ b/TempleOS/Adam/BinRep.CPP @@ -1,5 +1,5 @@ #help_index "Compiler" -DefineListLoad("ST_BIN_FILE_TYPES", +DefineLstLoad("ST_BIN_FILE_TYPES", "END\0 \0" "REL_EXPORT\0" "LIT_EXPORT\0" @@ -13,34 +13,31 @@ DefineListLoad("ST_BIN_FILE_TYPES", "LIT_U64\0" " \0 \0 \0 \0" "MAIN\0" -"MODULE_ALIGN\0" -" \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0" +"MODULE_ALIGN\0MODULE_ORG\0" +" \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0" "ABS_ADDR\0" "HEAP_GLBL\0" ); -public U0 BinRep(U8 *filename) +public Bool BinRep(U8 *filename) {//This reports imports, exports, etc //for a .BI? file. -//See $LK,"Loader Patch Table Generation","FF:::/SparrowOS/Compiler/CmpMain.CPP.Z,EIE_MODULE_ALIGNMENT"$ and $LK,"Load","MN:Load"$(). - U8 *fbuf; - U8 *ptr,etype; - U8 *sptr,*absname; - I64 size; +//See $LK,"Loader Patch Table Generation","FF:::/TempleOS/Compiler/CmpMain.CPP,EIE_MODULE_ALIGNMENT"$ and $LK,"Load","MN:Load"$(). + U8 *fbuf,*ptr,etype,*sptr,*absname; + I64 i,j,size; CBinFile *bfh,*bfh2; - I64 i,j; CHashExport *saved_hash_ptr=NULL; fbuf=DftExt(filename,"BIN.Z"); if (!(bfh2=FileRead(fbuf,&size))) { Free(fbuf); - return; + return FALSE; } bfh=bfh2; if (ArcXSum(bfh,bfh->file_size)!=NATIVE_XSUM) { "Bad XSum\n\n"; - return; + return FALSE; } absname=FileNameAbs(fbuf); @@ -81,5 +78,6 @@ public U0 BinRep(U8 *filename) } Free(absname); Free(bfh); + return TRUE; } #help_index "" diff --git a/SparrowOS/Adam/Boot/BootCD.CPP b/TempleOS/Adam/Boot/BootCD.CPP similarity index 90% rename from SparrowOS/Adam/Boot/BootCD.CPP rename to TempleOS/Adam/Boot/BootCD.CPP index deb3813..3a82d74 100644 --- a/SparrowOS/Adam/Boot/BootCD.CPP +++ b/TempleOS/Adam/Boot/BootCD.CPP @@ -41,11 +41,11 @@ BCD_DAP: DU8 16,0,1,0; //One blk at a time BCD_DAP_BUF: DU16 0,0; BCD_DAP_BLK: DU64 0; -BCD_SPARROWOS_MSG: - DU8 "Loading SparrowOS",0; +BCD_TEMPLEOS_MSG: + DU8 "Loading TempleOS",0; BCD_NOT64_MSG: - DU8 "SparrowOS requires a 64-bit capable processor.\n\r",0; + DU8 "TempleOS requires a 64-bit capable processor.\n\r",0; //These get patched by $LK,"CDBootFileCreate","MN:CDBootFileCreate"$ BCD_BLK_LO:: DU16 0; @@ -89,7 +89,7 @@ BCD_MAIN:: CALL BCD_PUTS @@10: JMP @@10 -@@15: MOV SI,BCD_SPARROWOS_MSG-BCD_START +@@15: MOV SI,BCD_TEMPLEOS_MSG-BCD_START CALL BCD_PUTS MOV AX,BOOT_RAM_BASE/16 @@ -146,12 +146,12 @@ BCD_MAIN:: //See $LK,"BootCdProbe","MN:BootCdProbe"$(). MOV EBX,U32 [BCD_BLK_LO-BCD_START] SHL EBX,16 - MOV BX,BOOT_CODE_CDROM //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/SparrowOS/\"TEXT_FILE_MASK);View;\n"$ + MOV BX,BOOT_CODE_CDROM //$MA+A-X+PU,"See sys_boot_code","Grep(\"sys_boot_code\",\"/TempleOS/\"FILENAME_MASK_TXT);View;\n"$ //My assembler doesn't support 16-bit very well. DU8 0xEA; //JMP BOOT_RAM_BASE:0000 DU16 0,BOOT_RAM_BASE/16; -//Continues here $LK,"::/SparrowOS/OSMain/OSStart.CPP.Z","FL:::/SparrowOS/OSMain/OSStart.CPP.Z,1"$ +//Continues here $LK,"::/TempleOS/Kernel/KStart.CPP","FL:::/TempleOS/Kernel/KStart.CPP,1"$ BCD_END:: #assert BCD_END-BCD_START>BLK_SIZE_BITS); MemCpy(br,BCD_START,BCD_END-BCD_START); @@ -65,13 +65,12 @@ _HI_CALL:: _extern _HI_CALL I64 HiCall(U8 *s); #help_index "Boot" -public U0 Boot(U8 *filename) -//Soft Reboot (no hardware rst) -//Specify the OSMain binary file you +public U0 SoftBoot(U8 *filename) //No hardware rst +//Specify the Kernel binary file you //wish to boot. { I64 size; - COSMain *hi_image,*lo_image=sys_boot_base-sizeof(CBinFile), + CKernel *hi_image,*lo_image=sys_boot_base-sizeof(CBinFile), reg *shutdown,*hi_image2; if (!(hi_image2=FileRead(filename,&size))) return; @@ -83,7 +82,7 @@ public U0 Boot(U8 *filename) break; } - shutdown=MAlloc(SYS_RESTART_OSMAIN_END-SYS_RESTART_OSMAIN,Fs->code_heap); + shutdown=MAlloc(SYS_RESTART_KERNEL_END-SYS_RESTART_KERNEL,Fs->code_heap); hi_image=MAlloc(size,Fs->code_heap); MemCpy(hi_image,hi_image2,size); Free(hi_image2); @@ -100,7 +99,7 @@ public U0 Boot(U8 *filename) if (mp_cnt>1) MPHalt; - MemCpy(shutdown,SYS_RESTART_OSMAIN,SYS_RESTART_OSMAIN_END-SYS_RESTART_OSMAIN); + MemCpy(shutdown,SYS_RESTART_KERNEL,SYS_RESTART_KERNEL_END-SYS_RESTART_KERNEL); MemCpy(&hi_image->sys_gdttab,&lo_image->sys_gdttab,GDT_SIZE); MemCpy(lo_image,hi_image,size); HiCall(shutdown); @@ -111,8 +110,8 @@ U0 InstallCDir(U8 src,U8 dst) { U8 buf_s[136],buf_d[136]; if (src==dst) return; - SPrintF(buf_s,"%c:/SparrowOS",src); - SPrintF(buf_d,"%c:/SparrowOS",dst); + SPrintF(buf_s,"%c:/TempleOS",src); + SPrintF(buf_d,"%c:/TempleOS",dst); DelTree(buf_d); CopyTree(buf_s,buf_d); } @@ -147,32 +146,33 @@ U8 ChkWritable(U8 drv_let=0) #help_index "Install" public U0 MakeAll() -//Call from $LK,"InstallBoot","MN:InstallBoot"$() because loader must be patched with block address. +//Call from $LK,"MakeOSInstallPrtBootLoader","MN:MakeOSInstallPrtBootLoader"$() because loader must be patched with block address. -//These 2 modules (and bootloaders at top) are the only statically -//compiled code in SparrowOS. Everything else is JIT. -//You are doing it wrong if you make statically compiled code. +//These 2 modules (and bootloaders at top) are the only AOT +//compiled code in TempleOS. Everything else is JIT. +//You are doing it wrong if you make AOT compiled code. { - Cd("/SparrowOS/Compiler"); + Cd("/TempleOS/Compiler"); if (Cmp("Compiler","Compiler",,':')) throw; - Cd("/SparrowOS/OSMain"); - if (Cmp("OSMain","OSMain",,':')) + Cd("/TempleOS/Kernel"); + if (Cmp("Kernel","Kernel",,':')) throw; } -public Bool InstallBoot(U8 src_drv,U8 dst_drv=0) -{ +public Bool MakeOSInstallPrtBootLoader(U8 src_drv=0,U8 dst_drv=0) +{//Make All and install new boot-loader. + //Normally, you just supply a src_drv. It will compile //the code on that drive and update the boot sect. //If you are making a bootable CD-ROM you supply a dst_drv. -//See $LK,"Bootable CD-ROMs","FF:::/SparrowOS/Doc/FileMgr.TXT.Z,Bootable"$ +//See $LK-A,"::/TempleOS/Demo/MakeDistro.CPP.Z"$ -//See $LK,"Install Documentation","FI:::/SparrowOS/Doc/Install.TXT.Z"$ +//See $LK,"Install Documentation","FI:::/TempleOS/Doc/Install.TXT"$ -//Study my account examples my technique $LK,"Cfg Strs","FL:::/SparrowOS/Demo/AcctExample/TSAdam.CPP.Z,1"$ $LK,"Update Funs","FL:::/SparrowOS/Demo/AcctExample/TSDistribute.CPP.Z,1"$ +//Study my account examples my technique $LK,"Cfg Strs","FL:::/TempleOS/Demo/AcctExample/TSAdam.CPP,1"$ $LK,"Update Funs","FL:::/TempleOS/Demo/AcctExample/TSDistro.CPP,1"$ CBlkDev *bdev; CPrt *p; @@ -186,9 +186,9 @@ public Bool InstallBoot(U8 src_drv,U8 dst_drv=0) if (!dst_drv) dst_drv=src_drv; //This passes a cfg arg for - //compilation of OSMain which is accessed + //compilation of Kernel which is accessed //within a #exe {} statement. - //See $LK,"InsBootDstDrv","FF:::/SparrowOS/OSMain/OSCfg.CPP.Z,InsBootDstDrv"$ + //See $LK,"InsBootDstDrv","FF:::/TempleOS/Kernel/KCfg.CPP,InsBootDstDrv"$ //(There is no way to set compiler options.) NamedFramePtrAdd("InsBootDstDrv",dst_drv); src_drv=ChkWritable(src_drv); @@ -201,16 +201,17 @@ public Bool InstallBoot(U8 src_drv,U8 dst_drv=0) p =Drv2Prt (dst_drv); switch (bdev->type) { case BDT_ATAPI: - Move("/SparrowOS/OSMain/OSMain.BIN.Z",BOOT_DIR_OSMAIN_BIN_C); + Move("/TempleOS/Kernel/Kernel.BIN.Z",BOOT_DIR_KERNEL_BIN_C); CDBootFileCreate; result=TRUE; break; case BDT_RAM: case BDT_ATA: - Move("/SparrowOS/OSMain/OSMain.BIN.Z",OSMAIN_BIN_C); - if (!FileFind(OSMAIN_BIN_C,&de,FALSE,TRUE)) - "No OSMain.BIN.C\n"; + Move("/TempleOS/Kernel/Kernel.BIN.Z",KERNEL_BIN_C); + if (!FileFind(KERNEL_BIN_C,&de,FUF_JUST_FILES)) + "No Kernel.BIN.C\n"; else { + Free(de.full_name); "Modifying partition boot record.\n"; RBlks(p,&br,p->offset,1); br.jump_and_nop[0]=0xEB; @@ -236,8 +237,8 @@ public Bool InstallBoot(U8 src_drv,U8 dst_drv=0) public U0 OldMasterBootRead(U8 src_drv,U8 dst_drv) {//Reads MBR from disk drive containing src partition. - //Writes a single blk file to dest /0000Boot directory. - CBlkDev *bdev=Drv2BlkDevFwded(src_drv); + //Writes a single blk file to dst /0000Boot directory. + CBlkDev *bdev=Drv2BlkDev(src_drv); CPrt *p; CMasterBoot mbr; Drv(dst_drv); @@ -258,8 +259,8 @@ public U0 OldMasterBootRead(U8 src_drv,U8 dst_drv) public U0 OldMasterBootWrite(U8 src_drv,U8 dst_drv) { //Reads OldMBR from src drive /0000Boot directory - //writes it to the MBR of the drive with dest partition. - CBlkDev *bdev=Drv2BlkDevFwded(dst_drv); + //writes it to the MBR of the drive with dst partition. + CBlkDev *bdev=Drv2BlkDev(dst_drv); CMasterBoot *mbr; Drv(src_drv); if (mbr=FileRead(OLDMBR_BIN_C)) { @@ -272,14 +273,14 @@ public U0 OldMasterBootWrite(U8 src_drv,U8 dst_drv) } public U0 MasterBootZero(U8 dst_drv) -{ //Set MBR of disk with dest partition to zero. +{ //Set MBR of disk with dst partition to zero. //This is dangerous!! -//The SparrowOS partitioner doesn't play well +//The TempleOS partitioner doesn't play well //with other operating systems at this time and you need -//to do this on a drive partitioned by SparrowOS +//to do this on a drive partitioned by TempleOS //if you wish to partition with another operating system. - CBlkDev *bdev=Drv2BlkDevFwded(dst_drv); + CBlkDev *bdev=Drv2BlkDev(dst_drv); CMasterBoot mbr; MemSet(&mbr,0,BLK_SIZE); //Bypass partition bounds-checking @@ -288,10 +289,10 @@ public U0 MasterBootZero(U8 dst_drv) BlkDevUnlock(bdev); } -public Bool InstallMasterBoot(U8 drv_let,U8 *drv_list=NULL) +public Bool InstallMasterBootLoader(U8 drv_let,U8 *drv_lst=NULL) { //Create new MBR on the disk that has drv_let as a partition. //Puts stage 2 in /0000Boot dir of drv_let. - CBlkDev *bdev,*bd1; + CBlkDev *bdev,*bdev1; CPrt *p,*p1; CMasterBoot mbr; CDirEntry de; @@ -300,8 +301,8 @@ public Bool InstallMasterBoot(U8 drv_let,U8 *drv_list=NULL) Bool result=FALSE; try { - if (drv_list) - StrCpy(buf2,drv_list); + if (drv_lst) + StrCpy(buf2,drv_lst); else { j=0; for (i='A';i<='Z';i++) @@ -314,16 +315,17 @@ public Bool InstallMasterBoot(U8 drv_let,U8 *drv_list=NULL) if (p->type!=PT_NATIVE && p->type!=PT_FAT32) PutDefineErr("ST_NOT_NATIVE"); else { - bdev=Drv2BlkDevFwded(drv_let); - if (!FileFind(OLDMBR_BIN_C,&de,FALSE,TRUE)) + bdev=Drv2BlkDev(drv_let); + if (!FileFind(OLDMBR_BIN_C,,FUF_JUST_FILES)) OldMasterBootRead(drv_let,drv_let); _q=BMHD2_BLK_ARRAY; MemSet(_q,0,sizeof(I64)*8); menu_ptr=BMHD2_BOOT_MSG; - SPrintF(menu_ptr,"\n\r\n\rSparrowOS Boot Loader\n\r\n\r"); + SPrintF(menu_ptr,"\n\r\n\rTempleOS Boot Loader\n\r\n\r"); j=0; - if (FileFind(OLDMBR_BIN_C,&de,FALSE,TRUE)) { + if (FileFind(OLDMBR_BIN_C,&de,FUF_JUST_FILES)) { + Free(de.full_name); *_q++=p->data+de.cluster*p->spc; StrCat(menu_ptr,"0. Old Boot Record\n\r"); j++; @@ -333,13 +335,13 @@ public Bool InstallMasterBoot(U8 drv_let,U8 *drv_list=NULL) while (ch=*ptr++) { try { p1 =Drv2Prt(ch); - bd1=Drv2BlkDevFwded(ch); + bdev1=Drv2BlkDev(ch); } catch { Fs->catch_except=TRUE; p1 =NULL; - bd1=NULL; + bdev1=NULL; } - if (p1 && bd1==bdev) { + if (p1 && bdev1==bdev) { *_q=p1->offset; "Drive %C:%16X\n",Prt2Drv(p1),*_q; SPrintF(buf,"%d. Drive %C\n\r",j++,Prt2Drv(p1)); @@ -352,9 +354,10 @@ public Bool InstallMasterBoot(U8 drv_let,U8 *drv_list=NULL) size=BMHD2_END-BMHD2_START; FileWrite(BOOTMHD2_BIN_C,BMHD2_START,size); - if (!FileFind(BOOTMHD2_BIN_C,&de,FALSE,TRUE)) + if (!FileFind(BOOTMHD2_BIN_C,&de,FUF_JUST_FILES)) "No Boot Loader Image\n"; else { + Free(de.full_name); *BMHD_BLK_CNT(U16 *)=(size+BLK_SIZE-1)>>BLK_SIZE_BITS; *BMHD_DAP_BLK(I64 *)=p->data+de.cluster*p->spc; //Bypass partition bounds-checking diff --git a/SparrowOS/Adam/Ctrls/Ctrls.CPP b/TempleOS/Adam/Ctrls/Ctrls.CPP similarity index 73% rename from SparrowOS/Adam/Ctrls/Ctrls.CPP rename to TempleOS/Adam/Ctrls/Ctrls.CPP index c2f0bd3..e3ad613 100644 --- a/SparrowOS/Adam/Ctrls/Ctrls.CPP +++ b/TempleOS/Adam/Ctrls/Ctrls.CPP @@ -1,5 +1,5 @@ #help_index "Ctrls" -#help_file "::/SparrowOS/Doc/Ctrls" +#help_file "::/TempleOS/Doc/Ctrls" #include "Ctrls2a" #include "CtrlsButton" diff --git a/SparrowOS/Adam/Ctrls/Ctrls2a.CPP b/TempleOS/Adam/Ctrls/Ctrls2a.CPP similarity index 100% rename from SparrowOS/Adam/Ctrls/Ctrls2a.CPP rename to TempleOS/Adam/Ctrls/Ctrls2a.CPP diff --git a/SparrowOS/Adam/Ctrls/CtrlsButton.CPP b/TempleOS/Adam/Ctrls/CtrlsButton.CPP similarity index 93% rename from SparrowOS/Adam/Ctrls/CtrlsButton.CPP rename to TempleOS/Adam/Ctrls/CtrlsButton.CPP index 40b1e70..f47d3e4 100644 --- a/SparrowOS/Adam/Ctrls/CtrlsButton.CPP +++ b/TempleOS/Adam/Ctrls/CtrlsButton.CPP @@ -17,14 +17,14 @@ U0 DrawCtrlButton(CDC *dc,CCtrl *c) dc->color=BLACK; GrRect(dc,c->left,c->top,c->right-c->left+1,c->bottom-c->top+1); - if (!(st=ListEntryPt(s->state,s->state_texts))) + if (!(st=LstEntryPt(s->state,s->state_texts))) st=s->state_texts; dc->color=s->state_colors[s->state]; l=StrLen(st); GrRect(dc,c->left+BUTTON_BORDER,c->top+BUTTON_BORDER, c->right-c->left+1-BUTTON_BORDER*2,c->bottom-c->top+1-BUTTON_BORDER*2); dc->color=s->state_colors[s->state]^(WHITE<<16+WHITE); - GrPutS(dc,c->left+(c->left+c->right+1-l*FONT_WIDTH)>>1, + GrPutS(dc,(c->left+c->right+1-l*FONT_WIDTH)>>1, (c->top+c->bottom+1-FONT_HEIGHT)>>1,st); } @@ -49,7 +49,7 @@ public CCtrl *CtrlButtonNew(I64 x,I64 y,I64 width=-1,I64 height=-1, if (width<0) { l=1; for (i=0;il) l=j; } diff --git a/SparrowOS/Adam/Ctrls/CtrlsSlider.CPP b/TempleOS/Adam/Ctrls/CtrlsSlider.CPP similarity index 100% rename from SparrowOS/Adam/Ctrls/CtrlsSlider.CPP rename to TempleOS/Adam/Ctrls/CtrlsSlider.CPP diff --git a/SparrowOS/Adam/Dbg2a.CPP b/TempleOS/Adam/Dbg2a.CPP similarity index 67% rename from SparrowOS/Adam/Dbg2a.CPP rename to TempleOS/Adam/Dbg2a.CPP index 0dbcd0d..6240b45 100644 --- a/SparrowOS/Adam/Dbg2a.CPP +++ b/TempleOS/Adam/Dbg2a.CPP @@ -1,9 +1,8 @@ -#help_index "Debugging" - +#help_index "Debugging/Dump" Bool ClassRep2(CDoc *doc,U8 *class_name,U8 *_b,I64 depth,I64 max_depth,Bool dynamic,I64 types=HTT_CLASS,I64 offset=0) { I64 i,j,*ptr; - CMemberList *ml; + CMemberLst *ml; CDocEntry *doc_e; Bool unlock; CHashClass *tempc,*tempc2; @@ -20,7 +19,7 @@ Bool ClassRep2(CDoc *doc,U8 *class_name,U8 *_b,I64 depth,I64 max_depth,Bool dyna return FALSE; unlock=DocLock(doc); DocPrintF(doc,"Class:\"%s\"\n",class_name); - ml=tempc->member_list; + ml=tempc->member_lst; while (ml) { tempc2=ml->member_class; ptr=_b(U8 *)+ml->offset; @@ -186,9 +185,9 @@ public U0 ClassRepD(U8 *class_name,U8 *_b,I64 max_depth=2,Bool fun=FALSE,I64 off U0 UpdateRegVarImg(CHashFun *tempf,U8 *_b,CTask *task) { - CMemberList *ml; + CMemberLst *ml; CHashClass *tempc; - ml=tempf->member_list; + ml=tempf->member_lst; while (ml) { if (ml->register!=CREG_NONE) { tempc=ml->member_class; @@ -208,7 +207,7 @@ public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL) I64 size; U8 *img; CHashFun *tempf=HashFind(st,Fs->hash_table,HTT_FUN); - CMemberList *tempm; + CMemberLst *tempm; if (tempf) { if (rbp) { if (task) { @@ -224,7 +223,7 @@ public U0 FunRep(U8 *st,U8 *rbp=NULL,I64 max_depth=2,CTask *task=NULL) } else ClassRep(st,rbp,max_depth,TRUE); } else { - tempm=tempf->member_list; + tempm=tempf->member_lst; while (tempm) { if (0<=tempm->registerregister,"ST_U64_REGS",tempm->str; @@ -253,146 +252,4 @@ public U0 Uf(U8 *st) } } -#help_index "Debugging/Breakpoints" -CBpt *BptFind(CTask *task,U8 *a,Bool rem=FALSE) -{//Rems - CBpt *result=NULL,*tempb,*tempb1,*tempb2; - PushFD; - Cli; - tempb1=&task->bpt_list; - tempb=task->bpt_list; - while (tempb) { - tempb2=tempb->next; - if (tempb->addr==a) { - result=tempb; - if (rem) - tempb1->next=tempb2; - else - tempb1=&tempb->next; - } else - tempb1=&tempb->next; - tempb=tempb2; - } - PopFD; - return result; -} - -public Bool BptS(U8 *a,CTask *task=NULL,Bool live=TRUE) //set Bpt -//Sets a breakpoint -//Honestly, I never use this. I put -//output statements to debug, partly -//because breakpoints don't work well. -{ - CBpt *tempb; - Bool result=TRUE; - if (!task) task=Fs; - PushFD; - Cli; - if (!(tempb=BptFind(task,a,FALSE))) { - tempb=CAlloc(sizeof(CBpt),task); - tempb->addr=a; - tempb->val=*a; - result=FALSE; - tempb->next=task->bpt_list; - task->bpt_list=tempb; - if (task==Fs && live) - *a=OC_BPT; - } - PopFD; - return result; -} - -U0 CtrlAltD(I64) -{ - if (!IsInDbg) { - if (Fs==Gs->idle_task) - BptS(sys_winmgr_task->rip,sys_winmgr_task); - else - BptS(*ctrl_alt_let_ret_addr); - } -} -SetCtrlAltLetCB('D',&CtrlAltD,"Sys/Enter Debugger",TRUE); - -public Bool BptR(U8 *a,CTask *task=NULL,Bool live=TRUE,Bool rem=TRUE) -//Rems one breakpoint -{ - CBpt *tempb; - Bool result=FALSE; - if (!task) task=Fs; - PushFD; - Cli; - if (tempb=BptFind(task,a,rem)) { - if (task==Fs && live) - *tempb->addr=tempb->val; - result=TRUE; - if (rem) - Free(tempb); - } - PopFD; - return result; -} - -public U0 BptsR(CTask *task=NULL,Bool live=TRUE) //clear Bpts -//Rems all breakpoints -{ - CBpt *tempb,*tempb1; - if (!task) task=Fs; - PushFD; - Cli; - tempb=task->bpt_list; - task->bpt_list=NULL; - while (tempb) { - tempb1=tempb->next; - if (task==Fs && live) - *tempb->addr=tempb->val; - Free(tempb); - tempb=tempb1; - } - PopFD; -} - -public U0 Go2(CTask *task=NULL) -//Do a $LK,"Step","MN:Step"$() first after a Bpt. -{ - if (!task) task=Fs; - if (BptFind(task,task->rip)) - "\nDo one of the following, first:\n" - ">Step;\t\t\t//Single step.\n" - ">BptsR;\t\t\t//Reset (clear) all break points.\n\n" - "After resuming, changes focus task.\n" - "After resuming, flushes screen VGA cache.\n\n"; - else { - LBtr(&task->task_flags,TASKf_DISABLE_BPTS); - LBtr(&task->rflags,RFLAGS_SINGLE_STEP); - Suspend(task,FALSE); - if (task==Fs) - Go1; - else - Exit; - } -} - -public U0 Go3(CTask *task=NULL) -//Rems all breakpoints and go. -{ - if (!task) task=Fs; - BptsR(task); - WinFocus(sys_dbg_focus_task); - VGAFlush; - Go2(task); -} - -public U0 Step(CTask *task=NULL) -//Execute single assembly instruction. -{ - if (!task) task=Fs; - LBts(&task->task_flags,TASKf_DISABLE_BPTS); - LBts(&task->rflags,RFLAGS_SINGLE_STEP); - Suspend(task,FALSE); - if (task==Fs) - Go1; - else - Exit; -} - #help_index "" diff --git a/SparrowOS/Adam/DevInfo.CPP b/TempleOS/Adam/DevInfo.CPP similarity index 59% rename from SparrowOS/Adam/DevInfo.CPP rename to TempleOS/Adam/DevInfo.CPP index c179f4c..bd3fc84 100644 --- a/SparrowOS/Adam/DevInfo.CPP +++ b/TempleOS/Adam/DevInfo.CPP @@ -3,9 +3,14 @@ //The file was downloaded from //http://www.pcidatabase.com/reports.php?type=tab-delimeted -#define PCI_DEV_FILE "::/SparrowOS/Misc/PCIDevices.TXT.Z" +#define PCI_DEV_FILE "::/TempleOS/Misc/PCIDevices.TXT.Z" /**** + +//1) Plain text edit and remove file header and tail +//2) Text find-and-replace "=0A=" with "". +//3) Run PCIDevFileGen(). + public U0 PCIDevFileGen() { Bool first=TRUE,del=FALSE,del2=FALSE,cont=FALSE; @@ -41,9 +46,10 @@ public U0 PCIDevFileGen() } DocWrite(doc); } + ****/ -//$LK,"::/SparrowOS/Misc/PCIDevices.TXT.Z","PI:::/SparrowOS/Misc/PCIDevices.TXT.Z"$ +//$LK,"::/TempleOS/Misc/PCIDevices.TXT","PI:::/TempleOS/Misc/PCIDevices.TXT"$ U0 PCILookUpSingle(CDoc *doc,I64 m,I64 d,U8 **_vendor,U8 **_dev) { Bool first=TRUE; @@ -174,120 +180,6 @@ public U0 CPURep() "%d Cores %6h?nHz\n",mp_cnt,ToF64(time_stamp_freq); } -#help_index "PCI;Info;File/System/Hardware;Device" -U0 ATARepEntry(I64 base0,I64 base1,I64 unit,I64 irq,U8 *msg,CATARep **_root,I64 *num_hints) -{ - I64 type; - base0&=-8; - base1&=-4; - CATARep *tempha; - if (type=ATAProbe(base0,base1,unit)) { - *num_hints+=1; - "\n\n$$FG,PURPLE$$ $$BT-LE+LM+X,\"%d\",\"%d\\n\"$$$$FG$$$$LM,4$$",*num_hints,*num_hints; - if (type==BDT_ATA) - "$$FG,RED$$ATA "; - else - "$$FG,RED$$ATAPI "; - "$$FG,LTBLUE$$%s$$FG$$\nBase0: 0x%04X\nBase1: 0x%04X\nIrq: 0x%02X Unit:%d$$LM,0$$\n",msg,base0,base1,irq,unit; - if (_root) { - tempha=CAlloc(sizeof(CATARep)); - tempha->next=*_root; - *_root=tempha; - tempha->num=*num_hints; - tempha->type=type; - tempha->base0=base0; - tempha->base1=base1; - tempha->unit=unit; - } - } -} - -Bool hint_ata_disable=FALSE; - -U0 ATARepExitAllApplications() -{ - I64 ch; - PutDefine("ST_GOING_TO_PROBE_HARDWARE"); - PutDefine("ST_EXIT_ALL_APPLICATIONS"); - PutDefine("ST_PRESS_A_KEY"); - "Press '$$FG,PURPLE$$p$$FG$$' to probe or '$$FG,PURPLE$$s$$FG$$' to skip.\n"; - ch=ToUpper(GetChar(NULL,FALSE)); - if (ch=='S') - hint_ata_disable=TRUE; - else - hint_ata_disable=FALSE; -} - -public I64 ATARep(Bool pmt=TRUE,CATARep **_root=NULL) -{ - U32 d1,d2; - U8 d3; - I64 i,unlock_flags=0,num_hints=0; -#assert NUM_BLKDEVS<=64 - Bool old_preempt; - - if (_root) *_root=NULL; - - if (pmt) - ATARepExitAllApplications; - if (hint_ata_disable) - return 0; - - old_preempt=Preempt(OFF); - for (i=0;iy+1; + else if (0<=j1_hi-1y+1; + else + "***,"; + if (0<=j2_loy+1; + else if (0<=j2_hi-1y+1; + else + "***"; + "---------------------$$FG$$\n"; i= j1_lo<=0 ? 0:j1_lo-1; while (i=j1_hi || j2_lo>=j2_hi) { - if (j1_loyy>=j1_hi) + if (!(j1_lo<=doc_s1[i1]->xyy>=j2_hi) + else if (!(j2_lo<=doc_s2[i2]->xtag,doc_s2[i2]->tag); @@ -144,10 +159,10 @@ U0 DiffSub(CDoc *doc,I64 *_df_flags,I64 j1_lo,I64 j1_hi,I64 j2_lo,I64 j2_hi, else { i2b=i2; while (!StrCmp(doc_s1[i1]->tag,doc_s2[i2]->tag)) { - if (doc_s2[i2]->y>=j2_lo && doc_s2[i2]->yxy; - j2=doc_s2[i2]->y; + j1=doc_s1[i1]->x; //x is the new y + j2=doc_s2[i2]->x; //x is the new y n=j1_hi-j1; if (j2_hi-j2last->last->num!= tempb2->last->last->num) - return FALSE; + return TRUE; while (tempb1!=&doc1->bin_root) { if (tempb1->type!=tempb2->type || tempb1->size!=tempb2->size || MemCmp(tempb1->data,tempb2->data,tempb1->size)) - return FALSE; + return TRUE; tempb1=tempb1->next; tempb2=tempb2->next; } - return TRUE; + return FALSE; } -public I64 Diff(U8 *dst_file,U8 *src_file,I64 df_flags=0) -{ //The df_flags arg is used when this is called by $LK,"MergeChk","MN:MergeChk"$(). - CDoc *doc1=DocRead(dst_file, DOCF_PLAIN_TEXT_WITH_TABS | DOCF_NO_CURSOR); - CDoc *doc2=DocRead(src_file, DOCF_PLAIN_TEXT_WITH_TABS | DOCF_NO_CURSOR); +public Bool Diff(U8 *dst_file,U8 *src_file,I64 *_df_flags=NULL) +{ //The _df_flags arg is used when this is called by $LK,"MergeChk","MN:MergeChk"$(). + CDoc *doc1=DocRead(dst_file,DOCF_PLAIN_TEXT_WITH_TABS|DOCF_NO_CURSOR), + *doc2=DocRead(src_file,DOCF_PLAIN_TEXT_WITH_TABS|DOCF_NO_CURSOR); CDocEntry *doc_e,**doc_s1,**doc_s2,**doc_us1,**doc_us2; - I64 i,cnt1=0,cnt2=0; + I64 i,cnt1=0,cnt2=0,df_flags; + Bool result=FALSE; + if (_df_flags) + df_flags=*_df_flags; + else + df_flags=0; df_flags&=DF_ABORT_ALL_FILES; doc_e=doc1->root.next; while (doc_e!=doc1) { if (doc_e->type_u8==DOCT_TEXT) - doc_e->y=cnt1++; + doc_e->x=cnt1++; //x is the new y doc_e=doc_e->next; } doc_e=doc2->root.next; while (doc_e!=doc2) { if (doc_e->type_u8==DOCT_TEXT) - doc_e->y=cnt2++; + doc_e->x=cnt2++; //x is the new y doc_e=doc_e->next; } @@ -251,12 +275,14 @@ public I64 Diff(U8 *dst_file,U8 *src_file,I64 df_flags=0) doc_us2[i]=doc2; QSortI64(doc_s2,cnt2,&DiffEntriesCompare); - DiffSub(doc1,&df_flags,0,cnt1,0,cnt2,cnt1,cnt2,doc_s1,doc_s2,doc_us1,doc_us2); + result=DiffSub(doc1,&df_flags,0,cnt1,0,cnt2,cnt1,cnt2,doc_s1,doc_s2,doc_us1,doc_us2); if (df_flags&DF_MODIFIED && !(df_flags&DF_DONT_MODIFIED)) DocWrite(doc1); - if (!DiffBins(doc1,doc2)) + if (DiffBins(doc1,doc2)) { "$$FG,RED$$Bin Data is Different$$FG$$\n"; + result=TRUE; + } DocDel(doc1); DocDel(doc2); @@ -264,6 +290,8 @@ public I64 Diff(U8 *dst_file,U8 *src_file,I64 df_flags=0) Free(doc_s2); Free(doc_us1); Free(doc_us2); - return df_flags; + if (_df_flags) + *_df_flags=df_flags; + return result; } #help_index "" diff --git a/SparrowOS/Adam/Doc/Doc.CPP b/TempleOS/Adam/Doc/Doc.CPP similarity index 57% rename from SparrowOS/Adam/Doc/Doc.CPP rename to TempleOS/Adam/Doc/Doc.CPP index 7ea5c7d..3757604 100644 --- a/SparrowOS/Adam/Doc/Doc.CPP +++ b/TempleOS/Adam/Doc/Doc.CPP @@ -1,7 +1,7 @@ #help_index "Doc" -#help_file "::/SparrowOS/Doc/Doc" +#help_file "::/TempleOS/Doc/Doc" -//See $LK,"::/SparrowOS/Doc/Doc.TXT.Z","FI:::/SparrowOS/Doc/Doc.TXT.Z"$ +//See $LK-A,"::/TempleOS/Doc/Doc.TXT"$ extern I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e); extern I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e); @@ -11,11 +11,11 @@ extern U0 EdUndoFilter(CDoc *doc); U0 DocInit() { - DefineListLoad("ST_DOC_CMDS","TX\0CR\0SR\0CU\0TB\0CL\0PB\0DA\0PL\0LM\0RM\0HD\0FO\0ID\0" + DefineLstLoad("ST_DOC_CMDS","TX\0CR\0SR\0CU\0TB\0CL\0PB\0DA\0PL\0LM\0RM\0HD\0FO\0ID\0" "FG\0BG\0FD\0BD\0F2\0FL\0FM\0FA\0FH\0FE\0FU\0FB\0FY\0FR\0FC\0FQ\0" "WW\0UL\0IV\0BK\0SX\0SY\0CM\0AN\0LK\0BT\0" - "CB\0MA\0MU\0HX\0HS\0HE\0TR\0SP\0@PI\0IB\0IT\0IS\0BP\0SO\0HL\0LP\0CC\0HI\0HV\0HC\0ER\0"); - DefineListLoad("ST_DOC_FLAGS", + "CB\0MA\0MU\0HX\0HS\0HE\0TR\0SP\0IB\0IT\0IS\0BP\0SO\0HL\0LP\0CC\0HI\0HV\0HC\0ER\0"); + DefineLstLoad("ST_DOC_FLAGS", //flags1 "A\0L\0" "LC\0LE\0LM\0LA\0RC\0RE\0RM\0RA\0" @@ -27,14 +27,14 @@ U0 DocInit() //flags2 "BP\0" ); - DefineListLoad("ST_LINK_TYPES","FI\0FA\0FF\0FL\0MN\0PI\0PF\0PL\0BF\0DF\0HI\0AD\0"); + DefineLstLoad("ST_LINK_TYPES","FI\0FA\0FF\0FL\0MN\0PI\0PF\0PL\0BF\0DF\0HI\0AD\0"); } DocInit; -//--SPARROWOS LINK TYPES-- +//--TEMPLEOS LINK TYPES-- // "filename" // "FI:filename" // "FA:filename,anchor" @@ -72,6 +72,7 @@ DocInit; #include "DocRecalc" #include "DocPlain" #include "DocFile" +#include "DocOpt" #include "DocPopUp" #include "DocCtrlL" #include "DocMacro" @@ -84,6 +85,6 @@ DocInit; #help_index "" $WW,1$/*$AN,"","Doc"$ -SparrowOS Doc's can have "cursor movement" cmds which can move the cursor up the screen and layer on existing text. It can also have call-back 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 an extensive portion of the document each time it is placed on the screen, becoming CPU intensive on big documents. The doc->recalc_start member attempts to limit what is recalculated. This is tricky, howeve, and optimizations create minor glitches. Similarly, an optimization to only refresh the entire document 1 in 10 times it is drawn to the screen creates minor glitches. Since the Doc handles the cmd line, it must also be fast when adding text output from programs. doc->recalc_start comes into play here. +TempleOS Doc's can have "cursor movement" cmds which can move the cursor up the screen and layer on existing text. It can also have call-back 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 an extensive portion of the document each time it is placed on the screen, becoming CPU intensive on big documents. The doc->recalc_start member attempts to limit what is recalculated. This is tricky, howeve, and optimizations create minor glitches. Similarly, an optimization to only refresh the entire document 1 in 10 times it is drawn to the screen creates minor glitches. Since the Doc handles the cmd line, it must also be fast when adding text output from programs. doc->recalc_start comes into play here. */ diff --git a/SparrowOS/Adam/Doc/DocBible.CPP b/TempleOS/Adam/Doc/DocBible.CPP similarity index 94% rename from SparrowOS/Adam/Doc/DocBible.CPP rename to TempleOS/Adam/Doc/DocBible.CPP index ff5a85b..34dc4b5 100644 --- a/SparrowOS/Adam/Doc/DocBible.CPP +++ b/TempleOS/Adam/Doc/DocBible.CPP @@ -1,7 +1,7 @@ #help_index "Doc/Bible" -DefineLoad("ST_BIBLE_FILE","::/SparrowOS/Misc/Bible.TXT.Z"); +DefineLoad("ST_BIBLE_FILE","::/TempleOS/Misc/Bible.TXT.Z"); -DefineListLoad("ST_BIBLE_BOOKS", +DefineLstLoad("ST_BIBLE_BOOKS", "Genesis\0" "Exodus\0" "Leviticus\0" @@ -77,7 +77,7 @@ DefineListLoad("ST_BIBLE_BOOKS", "Revelation\0" "\0"); -DefineListLoad("ST_BIBLE_BOOK_LINES", +DefineLstLoad("ST_BIBLE_BOOK_LINES", "297\0" "5068\0" "9123\0" diff --git a/SparrowOS/Adam/Doc/DocCodeTools.CPP b/TempleOS/Adam/Doc/DocCodeTools.CPP similarity index 97% rename from SparrowOS/Adam/Doc/DocCodeTools.CPP rename to TempleOS/Adam/Doc/DocCodeTools.CPP index e790dac..7097881 100644 --- a/SparrowOS/Adam/Doc/DocCodeTools.CPP +++ b/TempleOS/Adam/Doc/DocCodeTools.CPP @@ -215,16 +215,11 @@ U0 EdRefmtFun(CDoc *doc,I64 fmt_type) tempc=TaskRqstQue(task,Fs,st,1<win_top=Fs->win_top; - task->win_bottom=Fs->win_bottom; - task->win_left=Fs->win_left; - task->win_right=Fs->win_right; - TaskDerivedValsUpdate(task); - + SetWinHorz(Fs->win_left,Fs->win_right, task); + SetWinVert(Fs->win_top, Fs->win_bottom,task); if (GetRqstResult(tempc,&r)) { st=DirFile(doc->filename.name,,"PRJ.Z"), - prj_file=ZorNotZ(st); + prj_file=FileNameAbs(st,FUF_Z_OR_NOT_Z); Free(st); if (FileFind(prj_file)) { st2=DirFile(prj_file), @@ -248,7 +243,7 @@ U0 EdRefmtFun(CDoc *doc,I64 fmt_type) } else { Free(prj_file); st=DirFile(doc->filename.name,"Load","CPP.Z"); - prj_file=ZorNotZ(st); + prj_file=FileNameAbs(st,FUF_Z_OR_NOT_Z); Free(st); if (FileFind(prj_file)) st=MSPrintF("\"$$WW,1$$\";ExeFile(\"%s\",TRUE);",prj_file); @@ -390,8 +385,8 @@ U0 EdChSC(CDoc *doc) PopUp(buf,Fs); if (ch==CH_BACKSPACE) DocPrintF(doc,"CH_BACKSPACE,0x%X",sc); - else if (ch==CH_NEW_LINE) - DocPrintF(doc,"CH_NEW_LINE,0x%X",sc); + else if (ch=='\n') + DocPrintF(doc,"'\n',0x%X",sc); else if (CH_CTRLA<=ch<=CH_CTRLZ) DocPrintF(doc,"CH_CTRL%C,0x%X",ch+'@',sc); else if (ch=='$$') diff --git a/SparrowOS/Adam/Doc/DocCtrlL.CPP b/TempleOS/Adam/Doc/DocCtrlL.CPP similarity index 98% rename from SparrowOS/Adam/Doc/DocCtrlL.CPP rename to TempleOS/Adam/Doc/DocCtrlL.CPP index 0ec027a..82375b7 100644 --- a/SparrowOS/Adam/Doc/DocCtrlL.CPP +++ b/TempleOS/Adam/Doc/DocCtrlL.CPP @@ -134,7 +134,7 @@ class CEdProject Bool hide; }; -U8 *ctrl_L_footer="\n\n$$LK,\"Click for Help\",\"FI:::/SparrowOS/Doc/CtrlL.TXT.Z\"$$\n"; +U8 *ctrl_L_footer="\n\n$$LK,\"Click for Help\",\"FI:::/TempleOS/Doc/CtrlL.TXT\"$$\n"; Bool PmtLink(I64 type,U8 **_tag,U8 **_link,Bool *_quote,U8 **_html_link) { @@ -852,7 +852,7 @@ class CEdData Bool u8 fmtstr "$$CB,\"U8\"$$\n"; Bool u16 fmtstr "$$CB,\"U16\"$$\n"; Bool u32 fmtstr "$$CB,\"U32\"$$\n"; - Bool u64 fmtstr "$$CB,\"I64\"$$\n"; + Bool u64 fmtstr "$$CB,\"U64\"$$\n"; }; U0 EdInsData() @@ -869,9 +869,9 @@ U0 EdInsData() if (dt->refresh) StrCat(buf,"+RD"); if (dt->update) StrCat(buf,"+UD"); - if (dt->u8) StrCat(buf,"-I64+U8"); - else if (dt->u16) StrCat(buf,"-I64+U16"); - else if (dt->u32) StrCat(buf,"-I64+U32"); + if (dt->u8) StrCat(buf,"-U64+U8"); + else if (dt->u16) StrCat(buf,"-U64+U16"); + else if (dt->u32) StrCat(buf,"-U64+U32"); st=MSPrintF("%q",dt->fmt_str); "$$$$DA%s,%d,\\\"%Q\\\"$$$$",buf,dt->len,st; @@ -1060,7 +1060,7 @@ I64 PopUpSpriteType() { I64 i; CDoc *doc=DocNew; - DocPutS(doc,"A sprite is composed of an ordered list of elements\n" + DocPutS(doc,"A sprite is composed of an ordered lst of elements\n" "such as lines and color changes. You can create an icon\n" "by placing a sprite with a payload of C+ code to execute.\n" "This is a called a \"sprite macro\". Check \"Pop-Up\" for\n" @@ -1130,7 +1130,7 @@ U8 *EdSprite(I64 bin_num) *buf=0; switch (type) { case PT_SPRITE: - SPrintF(dt->tag,"<%d>",DocCur->cur_bin_num); + SPrintF(dt->tag,"<%d>",bin_num); if (DocFormDo(dt,"CEdJustSprite",,,ctrl_L_footer)) st1=MSPrintF("\"%Q\"",dt->tag); break; @@ -1159,16 +1159,16 @@ U8 *EdSprite(I64 bin_num) st1=EdSpriteLink(&html_link); break; case PT_SPRITE_PTR: - EdInsBinary(bin_num,DOCT_INS_BINARY); + EdInsBinary(--bin_num,DOCT_INS_BINARY); break; case PT_SPRITE_SIZE: - EdInsBinary(bin_num,DOCT_INS_BINARY_SIZE); + EdInsBinary(--bin_num,DOCT_INS_BINARY_SIZE); break; case PT_DUP_SPRITE: - EdInsBinary(bin_num,DOCT_SPRITE); + EdInsBinary(--bin_num,DOCT_SPRITE); break; case PT_SPRITE_TYPE: - EdInsBinary(bin_num,DOCT_INS_BINARY_TYPE); + EdInsBinary(--bin_num,DOCT_INS_BINARY_TYPE); break; } if (st1) { diff --git a/SparrowOS/Adam/Doc/DocEd.CPP b/TempleOS/Adam/Doc/DocEd.CPP similarity index 96% rename from SparrowOS/Adam/Doc/DocEd.CPP rename to TempleOS/Adam/Doc/DocEd.CPP index e05b04f..ea32661 100644 --- a/SparrowOS/Adam/Doc/DocEd.CPP +++ b/TempleOS/Adam/Doc/DocEd.CPP @@ -7,9 +7,6 @@ public Bool DocLineNumGoTo(CDoc *doc,I64 line_num) //one based doc->x=0; doc->y=line_num-1; DocRecalc(doc,FALSE,DOC_RECALC_FIND_CURSOR); - if (doc->cur_entry->y==line_num-1) - result=TRUE; - if (!result) DocBottom(doc); DocCenter(doc); if (unlock) DocUnlock(doc); @@ -100,9 +97,9 @@ public I64 EdCurU8(CDoc *doc) if (doc_ce->type_u8==DOCT_TEXT && doc_ce->min_col<=doc->cur_data_colmax_col) result=doc_ce->tag[doc->cur_data_col]; else if (doc_ce->type_u8==DOCT_TAB) - result=CH_TAB; + result='\t'; else if (doc_ce->type_u8==DOCT_NEW_LINE || doc_ce->type_u8==DOCT_SOFT_NEW_LINE) - result=CH_NEW_LINE; + result='\n'; if (unlock) DocUnlock(doc); return result; @@ -723,7 +720,7 @@ U0 EdInsChar(I64 ch,I64 sc,CDoc *doc) if (ch==CH_CARRIAGE_RETURN) goto ic_done; ic_cont: - if ((ch==CH_SPACE || ch==CH_NEW_LINE) && + if ((ch==CH_SPACE || ch=='\n') && !(sc & (SCF_CTRL|SCF_SHIFT)) && doc_ce->flags1 & (DOCEF1_LINK|DOCEF1_TREE|DOCEF1_CHECK_COLLAPSABLE| DOCEF1_LEFT_MACRO|DOCEF1_LEFT_EXP|DOCEF1_LEFT_CB|DOCEF1_LEFT_AUTO | @@ -803,24 +800,24 @@ ic_overstrike_char: doc_ne->y=doc_ce->y; doc_ne->page_line_num=doc_ce->page_line_num; QueIns(doc_ne,doc_ce->last); - } else if (ch==CH_NEW_LINE) { + } else if (ch=='\n') { while (doc->cur_entry->next!=doc && doc->cur_entry->y==y) doc->cur_entry=doc->cur_entry->next; doc->cur_data_col=doc->cur_entry->min_col; - } else if (ch==CH_TAB) { + } else if (ch=='\t') { if (doc->flags&DOCF_FORM) goto ic_form_tab; } goto ic_done; } - if (ch==CH_NEW_LINE) { + if (ch=='\n') { doc_ne=CAlloc(sizeof(CDocEntryBase),doc->mem_task); if (sc&SCF_CTRL && !(sc&SCF_SHIFT)) doc_ne->type=DOCT_PAGE_BREAK | doc->settings_root.dft_text_attr << 8; else doc_ne->type=DOCT_NEW_LINE | doc->settings_root.dft_text_attr << 8; DocIns(doc,doc_ne); - } else if (ch==CH_TAB) { + } else if (ch=='\t') { if (doc->flags&DOCF_FORM && Bt(doc_form_types,doc->cur_entry->type_u8) && !(doc->cur_entry->flags1&DOCEF1_SKIP_IN_FORM)) { @@ -1503,10 +1500,10 @@ U0 DocFlagsToggle(CDoc *doc,I64 tog_flags) #help_index "Doc/Output" public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) { - I64 i,x,y,sc2,ext_ascii_cnt=0,timeout; + I64 i,x,y,sc2,ext_ascii_cnt=0; CDoc *m; CDocEntry *doc_ce; - U8 *st; + U8 *st,*st2; Bool unlock; if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) @@ -1622,7 +1619,7 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) DocPutS(doc,"$$ID,2$$"); } break; - case CH_NEW_LINE: + case '\n': if (sc&SCF_KEY_DESC) { if (sc&SCF_SHIFT) SetKeyDesc("Char/Return"); @@ -1891,9 +1888,9 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) SetKeyDesc("Help"); } else { if (sc&SCF_SHIFT) - Ed("::/SparrowOS/Doc/Splash.TXT.Z"); + Ed("::/TempleOS/Doc/Splash.TXT.Z"); else - Ed("::/SparrowOS/Doc/HelpIndex.TXT.Z"); + Ed("::/TempleOS/Doc/HelpIndex.TXT.Z"); } break; case SC_F2: @@ -1957,20 +1954,20 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) IDEGo; DocLock(doc); } else { - if (doc_ce->flags1&DOCEF1_LINK) { - if (doc_ce->flags1 & DOCEF1_AUX_STR) - st=doc_ce->aux_str; - else - st=doc_ce->tag; - st= st[2]==':' ? st+3:st; + if (st2=DocEntryLink(doc,doc_ce)) { + st=DocLinkFile(st2); + Free(st2); } else { DocWrite(doc); - st=doc->filename.name; + st=StrNew(doc->filename.name); + } + if (st) { + if (sc&SCF_SHIFT) + AdamFile(st); + else + PopUpFile(st); + Free(st); } - if (sc&SCF_SHIFT) - AdamFile(st); - else - PopUpFile(st); } } break; @@ -2194,13 +2191,8 @@ public U0 DocPutKey(CDoc *doc,I64 ch,I64 sc) doc->ext_ascii_cnt=ext_ascii_cnt; if (unlock) DocUnlock(doc); - if (doc==Fs->last_doc && !(doc->flags&DOCF_DONT_SWAP_OUT)) { - timeout=GetTimeStamp; - if (timeout>doc->swap_out_time) { - doc->swap_out_time=timeout+time_stamp_freq>>4; - Yield; - } - } + if (!(doc->flags&DOCF_DONT_SWAP_OUT)) + Yield; } Bool AKDDocPutKey(I64 ch,I64 scancode) @@ -2225,7 +2217,7 @@ public U0 DocPutSPartial(CDoc *doc,U8 *st) U8 ch,*b,*src,*dst,*ptr=st,*ptr2; Bool unlock; CDocEntry *doc_ce,*doc_ne; - I64 i,j,timeout; + I64 i,j; if (!st) return; if (doc->user_put_s) @@ -2287,21 +2279,15 @@ public U0 DocPutSPartial(CDoc *doc,U8 *st) } if (unlock) DocUnlock(doc); - if (doc==Fs->last_doc && - !(doc->flags&DOCF_DONT_SWAP_OUT)) { - timeout=GetTimeStamp; - if (timeout>doc->swap_out_time) { - doc->swap_out_time=timeout+time_stamp_freq>>4; - Yield; - } - } + if (!(doc->flags&DOCF_DONT_SWAP_OUT)) + Yield; } #help_index "Doc" Bool DocFileEd(I64 type,U8 *filename, U8 *pattern,I64 *_num,I64 ed_flags) { - I64 flags=0; + I64 flags=0,i; CDocEntry *doc_e; CDoc *doc; Bool old_silent=Bt(&Fs->display_flags,DISPLAYf_SILENT), @@ -2332,8 +2318,11 @@ Bool DocFileEd(I64 type,U8 *filename, doc=DocCur; else { Silent(ON); - //if bail, scan parents - result=FileFind(filename,NULL,FALSE,TRUE,Bt(&ed_flags,EDf_BAIL)); + if (Bt(&ed_flags,EDf_BAIL)) //if bail, scan parents + i=FUF_JUST_FILES|FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS; + else + i=FUF_JUST_FILES; + result=FileFind(filename,,i); doc=DocRead(filename,flags); StrCpy(doc->desc,"Edit"); Silent(old_silent); @@ -2382,14 +2371,12 @@ Bool DocFileEd(I64 type,U8 *filename, return result; } -public I64 EdLinkCvt(U8 *link_st,U8 **_filename,U8 **_pattern,I64 *_num,I64 ed_flags) +public I64 EdLinkCvt(U8 *link_st,U8 **_filename=NULL,U8 **_pattern=NULL, + I64 *_num=NULL,I64 ed_flags=0) { - U8 *st,*ptr,*filename; - I64 result,i; + U8 *st,*ptr,*filename=NULL,*pattern=NULL,*filename2; + I64 result,i,num=1; CHashSrcSym *temph; - *_filename=NULL; - *_pattern=NULL; - *_num=1; if (!link_st||!*link_st) { if (ed_flags&EDF_BAIL) return -1; @@ -2399,88 +2386,98 @@ public I64 EdLinkCvt(U8 *link_st,U8 **_filename,U8 **_pattern,I64 *_num,I64 ed_f result=LK_FILE; if (StrLen(st)>3 && st[2]==':') { st[2]=0; - filename=st+3; + filename2=st+3; switch (result=DefineMatch(st,"ST_LINK_TYPES",LEF_IGNORE_CASE)) { case LK_MAN_PAGE: - if (temph=HashFind(filename,Fs->hash_table,HTG_SRC_SYM)) { + if (temph=HashFind(filename2,Fs->hash_table,HTG_SRC_SYM)) { if (temph->type&HTT_DEFINE_STR && temph(CHashDefineStr *)->caller) { if (ptr=SrcEdLink(temph(CHashDefineStr *)->caller,DFT_ADDR_LINK_BIN_SIZE)) { - result=EdLinkCvt(ptr,_filename,_pattern,_num,ed_flags); + result=EdLinkCvt(ptr,&filename,&pattern,&num,ed_flags); Free(ptr); } else result=-1; } else - result=EdLinkCvt(temph->src_link,_filename,_pattern,_num,ed_flags); + result=EdLinkCvt(temph->src_link,&filename,&pattern,&num,ed_flags); } else result=-1; goto lc_done; case LK_ADDR: - if (ptr=StrLastOcc(filename,",")) { + if (ptr=StrLastOcc(filename2,",")) { *ptr=0; i=A2I(ptr+1); } else i=DFT_ADDR_LINK_BIN_SIZE; - if (ptr=SrcEdLink(ExePrintF("%s;",filename),i)) { - result=EdLinkCvt(ptr,_filename,_pattern,_num,ed_flags); + if (ptr=SrcEdLink(ExePrintF("%s;",filename2),i)) { + result=EdLinkCvt(ptr,&filename,&pattern,&num,ed_flags); Free(ptr); } else result=-1; goto lc_done; case LK_DEF: - if (ptr=StrLastOcc(filename,",")) { + if (ptr=StrLastOcc(filename2,",")) { *ptr=0; i=A2I(ptr+1); } else i=-1; - *_filename=StrNew(filename); - *_num=i; + filename=StrNew(filename2); + num=i; goto lc_done; case LK_HELP_INDEX: - *_filename=StrNew(filename); + filename=StrNew(filename2); goto lc_done; case LK_BIBLE_FIND: - if (ptr=StrLastOcc(filename,",")) { + if (ptr=StrLastOcc(filename2,",")) { *ptr=0; - *_pattern=StrNew(ptr+1); + pattern=StrNew(ptr+1); } - i=DefineMatch(filename,"ST_BIBLE_BOOKS",LEF_IGNORE_CASE); + i=DefineMatch(filename2,"ST_BIBLE_BOOKS",LEF_IGNORE_CASE); if (i<0) result=-1; else { - *_num=A2I(DefineSub(i,"ST_BIBLE_BOOK_LINES")); - filename=Define("ST_BIBLE_FILE"); + num=A2I(DefineSub(i,"ST_BIBLE_BOOK_LINES")); + filename2=Define("ST_BIBLE_FILE"); } break; case LK_FILE_LINE: case LK_PLAIN_LINE: - if (ptr=StrLastOcc(filename,",")) { + if (ptr=StrLastOcc(filename2,",")) { *ptr=0; - *_num=A2I(ptr+1); + num=A2I(ptr+1); } break; case LK_FILE_ANCHOR: - if (ptr=StrLastOcc(filename,",")) { + if (ptr=StrLastOcc(filename2,",")) { *ptr=0; - *_pattern=StrNew(ptr+1); + pattern=StrNew(ptr+1); } break; case LK_FILE_FIND: case LK_PLAIN_FIND: - if (ptr=StrLastOcc(filename,",")) { + if (ptr=StrLastOcc(filename2,",")) { *ptr=0; - *_pattern=StrNew(ptr+1); - if (ptr=StrLastOcc(*_pattern,":")) { + pattern=StrNew(ptr+1); + if (ptr=StrLastOcc(pattern,":")) { *ptr=0; - *_num=A2I(ptr+1); + num=A2I(ptr+1); } } break; } } else - filename=st; + filename2=st; if (result>=0) - *_filename=StrNew(filename); + filename=FileNameAbs(filename2,FUF_Z_OR_NOT_Z); lc_done: Free(st); + if (_filename) + *_filename=filename; + else + Free(filename); + if (_pattern) + *_pattern=pattern; + else + Free(pattern); + if (_num) + *_num=num; return result; } diff --git a/SparrowOS/Adam/Doc/DocFile.CPP b/TempleOS/Adam/Doc/DocFile.CPP similarity index 98% rename from SparrowOS/Adam/Doc/DocFile.CPP rename to TempleOS/Adam/Doc/DocFile.CPP index fd01063..2a65d14 100644 --- a/SparrowOS/Adam/Doc/DocFile.CPP +++ b/TempleOS/Adam/Doc/DocFile.CPP @@ -78,7 +78,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) else cnt++; break; - case DOCT_TEXT://$BK,1$Update $LK,"DOCT_TEXT","FF:D:/SparrowOS/Compiler/Lex.CPP.Z,DOCT_TEXT"$$BK,0$ + case DOCT_TEXT://$BK,1$Update $LK,"DOCT_TEXT","FF:D:/TempleOS/Compiler/Lex.CPP,DOCT_TEXT"$$BK,0$ if (!(doc_e->flags1 & ~(DOCG_BL_IV_UL|DOCEF1_WORD_WRAP|DOCEF1_HIGHLIGHT|DOCEF1_LOCK_TO_PAGE|DOCEF1_LOCK_TO_CENTER|DOCEF1_SKIP|DOCEF1_HARD_SKIP|DOCEF1_FILTER_SKIP))) { cnt+=StrLen(doc_e->tag); if (!(doc->flags & (DOCF_PLAIN_TEXT | DOCF_PLAIN_TEXT_WITH_TABS)) || @@ -131,7 +131,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) *dst++=CH_CURSOR; switch (doc_e->type_u8) { case DOCT_TAB: - *dst++=CH_TAB; + *dst++='\t'; break; case DOCT_PAGE_BREAK: *dst++=CH_FORM_FEED; @@ -139,7 +139,7 @@ public U8 *DocSave(CDoc *doc,I64 *_size=NULL) case DOCT_NEW_LINE: if (doc->flags&DOCF_CARRIAGE_RETURN) *dst++=CH_CARRIAGE_RETURN; - *dst++=CH_NEW_LINE; + *dst++='\n'; break; default: if (doc_e->type_u8!=DOCT_SOFT_NEW_LINE && @@ -433,7 +433,7 @@ public Bool Type(U8 *fname) { CDoc *doc,*doc2; if (doc=DocCur) { - if (IsTextFile(fname)) { + if (FilesFindMatch(FILENAME_MASK_TXT,fname)) { doc2=DocRead(fname); DocInsDoc(doc,doc2); DocDel(doc2); @@ -444,7 +444,7 @@ public Bool Type(U8 *fname) } else if (FilesFindMatch("*.BMP;*.bmp",fname)) { DocPutBMPFile(doc,fname,TRUE); return TRUE; - } else if (FilesFindMatch("*.GRA.Z;*.GRA",fname)) { + } else if (FilesFindMatch("*.GRA*",fname)) { DocPutGRAFile(doc,fname); return TRUE; } diff --git a/SparrowOS/Adam/Doc/DocHighlight.CPP b/TempleOS/Adam/Doc/DocHighlight.CPP similarity index 99% rename from SparrowOS/Adam/Doc/DocHighlight.CPP rename to TempleOS/Adam/Doc/DocHighlight.CPP index 6ec92c4..9f9acd6 100644 --- a/SparrowOS/Adam/Doc/DocHighlight.CPP +++ b/TempleOS/Adam/Doc/DocHighlight.CPP @@ -10,7 +10,7 @@ DocHighlightInit; U32 *DocHighlight(CDoc *doc,Bool full_refresh,CDocEntry *doc_e,CDocSettings **_s, U8 *src,I64 len,I64 _temp_u32_attr) -{ //Be aware of $LK,"::/SparrowOS/Adam/ToHtml.CPP.Z","FI:::/SparrowOS/Adam/ToHtml.CPP.Z"$. +{ //Be aware of $LK-A,"::/TempleOS/Adam/ToHtml.CPP"$. U32 *result=MAlloc((len+1)*sizeof(U32)),*dst=result; U8 *ptr,ch,ch1,last_ch; CDocSettings *s=*_s; diff --git a/SparrowOS/Adam/Doc/DocIDE.CPP b/TempleOS/Adam/Doc/DocIDE.CPP similarity index 90% rename from SparrowOS/Adam/Doc/DocIDE.CPP rename to TempleOS/Adam/Doc/DocIDE.CPP index 56b89e9..eade120 100644 --- a/SparrowOS/Adam/Doc/DocIDE.CPP +++ b/TempleOS/Adam/Doc/DocIDE.CPP @@ -1,4 +1,4 @@ -#help_index "Debugging" +#help_index "Debugging/IDE" #define IDET_GO 1 #define IDET_STEP_INTO 2 @@ -17,7 +17,7 @@ U0 IDEWaitParent() CTask *task=Fs->parent_task; while (!IsSuspended(task) && !Bt(&task->task_flags,TASKf_IDLE) && - !Bt(&task->rflags,RFLAGS_SINGLE_STEP)) + !Bt(&task->rflags,RFLAGf_TRAP)) Yield; } @@ -119,7 +119,7 @@ public U0 IDE(U8 *filename) U8 *fn1=DftExt(filename,"CPP.Z"), *fn2=FileNameAbs(fn1); - if (PopUpCancelOk("$$BK,1$$$$FG,RED$$SparrowOS IDE Debugger$$FG$$$$BK,0$$\n" + if (PopUpCancelOk("$$BK,1$$$$FG,RED$$TempleOS IDE Debugger$$FG$$$$BK,0$$\n" "Do not use this on files that run when included.\n" "\nTo use:\n" " 1) Set a break-point in the editor window.\n" @@ -137,35 +137,26 @@ public U0 IDE(U8 *filename) "simple stuff, sort-of.\n\n" "I recommend making use of:\n" "$$LK,\"progress1\",\"MN:progress1\"$$-$$LK,\"progress4\",\"MN:progress4\"$$, -- glbl I64 vars shown on wallpaper\n" - "$$LK,\"DbgNum\",\"MN:DbgNum\"$$() $$LK,\"DbgStr\",\"MN:DbgStr\"$$() $$LK,\"DbgAdd\",\"MN:DbgAdd\"$$() -- raw text output for a time\n" + "$$LK,\"DbgI64\",\"MN:DbgI64\"$$() $$LK,\"DbgStr\",\"MN:DbgStr\"$$() $$LK,\"DbgAdd\",\"MN:DbgAdd\"$$() -- raw text output for a time\n" "$$LK,\"Beep\",\"MN:Beep\"$$() $$LK,\"Snd\",\"MN:Snd\"$$() -- sound\n" "$$LK,\"AdamLog\",\"MN:AdamLog\"$$() $$LK,\"AdamErr\",\"MN:AdamErr\"$$() -- printf to adam task's window\n" "$$LK,\"SysDbg\",\"MN:SysDbg\"$$() and $$LK,\"IsSysDbg\",\"MN:IsSysDbg\"$$() -- just a flag\n\n")) { - Fs->win_top=2; - Fs->win_bottom=TEXT_ROWS-2; - Fs->win_left=1; - Fs->win_right=TEXT_COLS>>1-1; - TaskDerivedValsUpdate; + SetWinHorz(1,TEXT_COLS>>1-1); + SetWinVert(2,TEXT_ROWS-2); LBts(&Fs->display_flags,DISPLAYf_CHILDREN_NOT_ON_TOP); task=Spawn(&UserCmdLine,NULL,"Debug",Fs); TaskWait(task); - task->win_top=12; - task->win_bottom=TEXT_ROWS-2; - task->win_left=TEXT_COLS>>1+1; - task->win_right=TEXT_COLS-2; - TaskDerivedValsUpdate(task); + SetWinHorz(TEXT_COLS>>1+1,TEXT_COLS-2,task); + SetWinVert(12,TEXT_ROWS-2,task); XTalk(task,"Ed(\"%s\");\n",fn2); Fs->dbg_task=task; task=Spawn(&UserCmdLine,NULL,"Watch",Fs); TaskWait(task); - task->win_top=2; - task->win_bottom=10; - task->win_left=TEXT_COLS>>1+1; - task->win_right=TEXT_COLS-2; - TaskDerivedValsUpdate(task); + SetWinHorz(TEXT_COLS>>1+1,TEXT_COLS-2,task); + SetWinVert(2,10,task); XTalk(task,"WatchLocals;\n"); ExeFile(fn2); Free(fn1); @@ -173,8 +164,6 @@ public U0 IDE(U8 *filename) } } - -#help_index "Debugging/Breakpoints" I64 IDELineAdd(CDbgInfo *dbg,I64 line) { I64 max=dbg->max_line-dbg->min_line; @@ -304,7 +293,7 @@ U0 IDEClearAllBpts(CDoc *doc) CDocEntry *doc_e,*doc_e2; Bool unlock; IDEWaitParent; - BptsR(Fs->parent_task); + B2(Fs->parent_task); unlock=DocLock(doc); doc_e=doc->root.next; while (doc_e!=doc) { @@ -334,7 +323,7 @@ U0 IDEGo() //Continue after breakpoint LBts(&task->task_flags,TASKf_DISABLE_BPTS); tempi->cur_line=task->rip; tempi->type=IDET_GO; - LBts(&task->rflags,RFLAGS_SINGLE_STEP); + LBts(&task->rflags,RFLAGf_TRAP); Suspend(task,FALSE); } @@ -363,7 +352,7 @@ U0 IDEStepOver(CDoc *doc) tempi->type=IDET_STEP_OVER; tempi->call_bpt=NULL; - LBts(&task->rflags,RFLAGS_SINGLE_STEP); + LBts(&task->rflags,RFLAGf_TRAP); Suspend(task,FALSE); opcode=task->rip; @@ -375,7 +364,7 @@ U0 IDEStepOver(CDoc *doc) tempi->existing_bpt=FALSE; tempi->call_bpt=opcode+5; LBtr(&task->task_flags,TASKf_DISABLE_BPTS); - LBtr(&task->rflags,RFLAGS_SINGLE_STEP); + LBtr(&task->rflags,RFLAGf_TRAP); } } @@ -401,7 +390,7 @@ U0 IDEStepInto(CDoc *doc) tempi->next_line=NULL; } tempi->type=IDET_STEP_INTO; - LBts(&task->rflags,RFLAGS_SINGLE_STEP); + LBts(&task->rflags,RFLAGf_TRAP); Suspend(task,FALSE); } @@ -423,11 +412,8 @@ U0 IDEEdTask(I64) Free(st); doc=DocCur(ed_task); if (TaskValidate(dbg_task=task->dbg_task)) { - ed_task->win_top=dbg_task->win_top; - ed_task->win_bottom=dbg_task->win_bottom; - ed_task->win_left=dbg_task->win_left; - ed_task->win_right=dbg_task->win_right; - TaskDerivedValsUpdate(ed_task); + SetWinHorz(dbg_task->win_left,dbg_task->win_right, ed_task); + SetWinVert(dbg_task->win_top, dbg_task->win_bottom,ed_task); if (tempi=NamedFramePtr("IDEFrame",dbg_task)) { tempi1=MAllocIdentical(tempi,ed_task); NamedFramePtrAdd("IDEFrame",tempi1); @@ -435,7 +421,7 @@ U0 IDEEdTask(I64) Kill(dbg_task); } task->dbg_task=ed_task; - tempb=task->bpt_list; + tempb=task->bpt_lst; while (tempb) { if (bpt_filename=SrcFileName(tempb->addr)) { if (!StrCmp(rip_filename,bpt_filename)) { @@ -465,7 +451,7 @@ U0 IDEResumeDbg() case IDET_GO: if (tempi->cur_line) { LBtr(&Fs->task_flags,TASKf_DISABLE_BPTS); - LBtr(&Fs->rflags,RFLAGS_SINGLE_STEP); + LBtr(&Fs->rflags,RFLAGf_TRAP); if (Fs->rip==tempi->cur_line) {//Jmp to self tempi->cur_line=NULL; Spawn(&IDEEdTask,NULL,"Resume Dbg",Fs); @@ -486,7 +472,7 @@ U0 IDEResumeDbg() Suspend(Fs,FALSE); break; case IDET_STEP_OVER: - LBts(&Fs->rflags,RFLAGS_SINGLE_STEP); + LBts(&Fs->rflags,RFLAGf_TRAP); LBts(&Fs->task_flags,TASKf_DISABLE_BPTS); if (Fs->rip==tempi->call_bpt) { if (!tempi->existing_bpt) @@ -507,7 +493,7 @@ U0 IDEResumeDbg() tempi->existing_bpt=FALSE; tempi->call_bpt=opcode+5; LBtr(&Fs->task_flags,TASKf_DISABLE_BPTS); - LBtr(&Fs->rflags,RFLAGS_SINGLE_STEP); + LBtr(&Fs->rflags,RFLAGf_TRAP); } Suspend(Fs,FALSE); } diff --git a/SparrowOS/Adam/Doc/DocMacro.CPP b/TempleOS/Adam/Doc/DocMacro.CPP similarity index 100% rename from SparrowOS/Adam/Doc/DocMacro.CPP rename to TempleOS/Adam/Doc/DocMacro.CPP diff --git a/SparrowOS/Adam/Doc/DocMain.CPP b/TempleOS/Adam/Doc/DocMain.CPP similarity index 64% rename from SparrowOS/Adam/Doc/DocMain.CPP rename to TempleOS/Adam/Doc/DocMain.CPP index b09c3e1..cc890d5 100644 --- a/SparrowOS/Adam/Doc/DocMain.CPP +++ b/TempleOS/Adam/Doc/DocMain.CPP @@ -1,6 +1,6 @@ #help_index "Doc/Cmd Line (Typically);Cmd Line (Typically)" -Bool EdJoin(U8 *link_st,I64 ed_flags) +Bool Ed(U8 *link_st,I64 ed_flags=0) { U8 *filename,*pattern; I64 i,num; @@ -27,60 +27,82 @@ ej_doc: result=TRUE; break; default: - cont=TRUE; - if (!(ed_flags&EDF_BAIL) && !IsTextFile(filename) && - !PopUpCancelOk(ST_WARN_ST "Not Text File\n\n")) - cont=FALSE; - if (cont) - result=DocFileEd(i,filename,pattern,&num,ed_flags); + if (IsRaw) + EdLite(filename,num); + else { + cont=TRUE; + if (!(ed_flags&EDF_BAIL) && !FilesFindMatch(FILENAME_MASK_TXT,filename) && + !PopUpCancelOk(ST_WARN_ST "Not Text File\n\n")) + cont=FALSE; + if (cont) + result=DocFileEd(i,filename,pattern,&num,ed_flags); + } } Free(filename); Free(pattern); return result; } -public U0 Ed(U8 *link_st=NULL) -{ //Usually pass in filename. See $LK,"DOC LINK TYPES","MN:LK_FILE"$. - if (IsRaw) - EdLite(link_st); - else - EdJoin(link_st,0); -} - -public U0 Plain(U8 *filename) +public Bool Plain(U8 *filename) //Open a document in plain text mode, //so that dollar signs are not special. { + Bool result; U8 *st=MSPrintF("PI:%s",filename); - Ed(st); + result=Ed(st); Free(st); + return result; } #help_index "Doc" public Bool DocLinkChk(U8 *link_st) { - U8 *filename,*pattern; + U8 *filename; I64 num; Bool result=FALSE; if (link_st) { - switch (EdLinkCvt(link_st,&filename,&pattern,&num,0)) { + switch (EdLinkCvt(link_st,&filename,,&num)) { case -1: break; case LK_FILE_LINE: case LK_PLAIN_LINE: case LK_FILE: - if (FileFind(filename,,,TRUE,TRUE)) - result=TRUE; //We don't check line number + //We don't check line number + result=FileFind(filename,,FUF_JUST_FILES|FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS); break; case LK_BIBLE_FIND: result=TRUE; //We don't check verse string break; default://TODO: Need to validate HI: and DF: - if (EdJoin(link_st,EDF_BAIL)) + if (Ed(link_st,EDF_BAIL)) result=TRUE; } Free(filename); - Free(pattern); + } + return result; +} + +public U8 *DocLinkFile(U8 *link_st,CTask *mem_task=NULL) +{ + U8 *filename=NULL,*st,*result=NULL; + if (link_st) { + switch (EdLinkCvt(link_st,&filename)) { + case LK_FILE: + case LK_FILE_ANCHOR: + case LK_FILE_FIND: + case LK_FILE_LINE: + case LK_PLAIN: + case LK_PLAIN_FIND: + case LK_PLAIN_LINE: + st=FileNameAbs(filename,FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS); + result=StrNew(st); + Free(st); + break; + case LK_BIBLE_FIND: + result=StrNew(Define("ST_BIBLE_FILE"),mem_task); + break; + } + Free(filename); } return result; } @@ -150,7 +172,7 @@ public U0 UseTermDoc() doc->flags|=DOCF_ATTR_BY_PRT; StrCpy(doc->desc,"Term"); DocQueInsRev(SysAuxDocInit,Fs->next_doc); - Fs->cur_menu=MenuFile("::/SparrowOS/Doc/EdPullDown.TXT.Z"); + Fs->cur_menu=MenuFile("::/TempleOS/Doc/EdPullDown.TXT"); WinScrollsInit(Fs); Preempt(old_preempt); Raw(OFF); @@ -182,7 +204,7 @@ public U8 *DocGetLine(CDoc *doc,CDocEntry *doc_e,I64 *cur_col=NULL,CDocEntry **_ while (*src) *dst++=*src++; } else if (doc_e->type_u8==DOCT_TAB) - *dst++=CH_TAB; + *dst++='\t'; if (doc_e==doc->cur_entry && cur_col) *cur_col=start-result+doc->cur_data_col; doc_e=doc_e->next; @@ -240,7 +262,7 @@ public CDocEntry *DocPutLine(CDocEntry *doc_e) } } while (ch); } else if (doc_e->type_u8==DOCT_TAB) - '' CH_TAB; + '\t'; doc_e=doc_e->next; } NewLine; @@ -291,7 +313,7 @@ public U8 *DocMGetS(I64 flags=0) } } // is a blank line without entry - } while (flags&GETSF_WITH_NEW_LINE || ch!=CH_NEW_LINE || sc & SCF_CTRL && sc & SCF_SHIFT); + } while (flags&GETSF_WITH_NEW_LINE || ch!='\n' || sc & SCF_CTRL && sc & SCF_SHIFT); Preempt(OFF); doc=DocCur; @@ -430,23 +452,40 @@ public CDate PmtCDate(U8 *msg,CDate dft,CDate lo=MIN_I64,CDate hi=MAX_I64) #define RIGHT_MOVE 7 #define RIGHT_DELETE 8 #define RIGHT_TYPE 9 +#define RIGHT_ED 10 +#define RIGHT_PLAIN 11 +#define RIGHT_BINREP 12 I64 PopUpCancelIncludeDelAuto(U8 *header=NULL,U8 *footer=NULL) { I64 i; CDoc *doc=DocNew; if (header) DocPutS(doc,header); - DocPutS(doc,"$$CM+LX,1,3 $$$$BT,\"INCLUDE (.CPP.Z)\",RIGHT_INCLUDE$$" - "$$CM+LX,26,0$$$$BT,\"DEBUG \",RIGHT_DEBUG$$" - "$$CM+LX,1,3 $$$$BT,\"STATIC COMPILE(.PRJ.Z)\",RIGHT_COMPILE$$" - "$$CM+LX,26,0$$$$BT,\"LOAD (.BIN.Z)\",RIGHT_LOAD$$" - "$$CM+LX,1,3 $$$$BT,\"ADAM_INCLUDE (.CPP.Z)\",RIGHT_AINCLUDE$$" - "$$CM+LX,26,0$$$$BT,\"AUTOFILE (.AUT.Z)\",RIGHT_AUTOFILE$$" - "$$CM+LX,1,3 $$$$BT,\"COPY \",RIGHT_COPY$$" - "$$CM+LX,26,0$$$$BT,\"MOVE \",RIGHT_MOVE$$" - "$$CM+LX,1,3 $$$$BT,\"DELETE \",RIGHT_DELETE$$" - "$$CM+LX,26,0$$$$BT,\"TYPE \",RIGHT_TYPE$$" - "$$CM+LX,1,3 $$$$BT,\"CANCEL \",DOCM_CANCEL$$\n"); + DocPrintF(doc,"\n\n" + "TXT=%s\n" + "SRC=%s\n" + "AOT=%s\n" + "JIT=%s\n" + "GRA=%s" + "$$CM+LX,1,3 $$$$BT,\"INCLUDE JIT\",RIGHT_INCLUDE$$" + "$$CM+LX,26,0$$$$BT,\"DEBUG JIT\",RIGHT_DEBUG$$" + "$$CM+LX,1,3 $$$$BT,\"AOT COMPILE AOT\",RIGHT_COMPILE$$" + "$$CM+LX,26,0$$$$BT,\"LOAD BIN\",RIGHT_LOAD$$" + "$$CM+LX,1,3 $$$$BT,\"ADAM_INCLUDE JIT\",RIGHT_AINCLUDE$$" + "$$CM+LX,26,0$$$$BT,\"AUTOFILE AUT\",RIGHT_AUTOFILE$$" + "$$CM+LX,1,3 $$$$BT,\"COPY \",RIGHT_COPY$$" + "$$CM+LX,26,0$$$$BT,\"MOVE \",RIGHT_MOVE$$" + "$$CM+LX,1,3 $$$$BT,\"DELETE \",RIGHT_DELETE$$" + "$$CM+LX,26,0$$$$BT,\"TYPE TXT;GRA\",RIGHT_TYPE$$" + "$$CM+LX,1,3 $$$$BT,\"ED TXT\",RIGHT_ED$$" + "$$CM+LX,26,0$$$$BT,\"PLAIN ED TXT\",RIGHT_PLAIN$$" + "$$CM+LX,1,3 $$$$BT,\"CANCEL \",DOCM_CANCEL$$" + "$$CM+LX,26,0$$$$BT,\"BINREP BIN\",RIGHT_BINREP$$\n", + FILENAME_MASK_TXT, + FILENAME_MASK_SRC, + FILENAME_MASK_AOT, + FILENAME_MASK_JIT, + FILENAME_MASK_GRA); if (footer) DocPutS(doc,footer); i=PopUpMenu(doc); DocDel(doc); @@ -455,147 +494,154 @@ I64 PopUpCancelIncludeDelAuto(U8 *header=NULL,U8 *footer=NULL) I64 EdLeftClickLink(CDoc *doc,CDocEntry *doc_e) { //called with doc locked, exit unlocked + Bool result; U8 *st; - if (doc_e->flags1 & DOCEF1_AUX_STR) - st=StrNew(doc_e->aux_str); - else - st=StrNew(doc_e->tag); - DocUnlock(doc); - Ed(st); - Free(st); - return 0; + if (st=DocEntryLink(doc,doc_e)) { + DocUnlock(doc); + result=Ed(st); + Free(st); + return result; + } } I64 TermRightClickLink(CDoc *doc,CDocEntry *doc_e) { //called with doc locked, exit unlocked Bool send_new_line=FALSE,result=FALSE; - U8 *st; + U8 *st,*st2; I64 i; CEdFileName fn; - if (doc_e->flags1 & DOCEF1_AUX_STR) - st=doc_e->aux_str; - else - st=doc_e->tag; - st= st[2]==':' ? st+3:st; - DocUnlock(doc); - if ((i=PopUpCancelIncludeDelAuto(st))>=0) { - DocBottom(doc); - switch (i) { - case RIGHT_INCLUDE: - if (FileExtDot(st) && !WildCardMatch("*.CPP.Z",st)) { - if (!PopUpCancelOk(ST_WARN_ST "Not .CPP.Z File\n\n")) { - send_new_line=TRUE; + if (st2=DocEntryLink(doc,doc_e)) { + if (st=DocLinkFile(st2)) { + DocUnlock(doc); + if ((i=PopUpCancelIncludeDelAuto(st))>=0) { + DocBottom(doc); + switch (i) { + case RIGHT_INCLUDE: + if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_JIT,st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) { + send_new_line=TRUE; + break; + } + } + "#include \"%s\";\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + ExeFile(st); + result=TRUE; break; - } - } - "#include \"%s\";\n$$FU$$$$FG$$$$BG$$",st; - WinZBufUpdate; - ExeFile(st); - result=TRUE; - break; - case RIGHT_DELETE: - Del(st); - result=TRUE; - break; - case RIGHT_TYPE: - result=Type(st); - break; - case RIGHT_AUTOFILE: - if (FileExtDot(st) && !WildCardMatch("*.AUT.Z",st)) { - if (!PopUpCancelOk(ST_WARN_ST "Not .AUT.Z File\n\n")) { - send_new_line=TRUE; + case RIGHT_DELETE: + result=ToBool(Del(st)); break; - } - } - "AutoFile(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; - WinZBufUpdate; - AutoStr("%F\n",st); - result=TRUE; - break; - case RIGHT_AINCLUDE: - if (FileExtDot(st) && !WildCardMatch("*.CPP.Z",st)) { - if (!PopUpCancelOk(ST_WARN_ST "Not .CPP.Z File\n\n")) { - send_new_line=TRUE; + case RIGHT_TYPE: + result=Type(st); break; - } - } - "Adam(\"#include \\\"%s\\\"\" );\n$$FU$$$$FG$$$$BG$$",st; - WinZBufUpdate; - AdamFile(st,FALSE); - result=TRUE; - break; - case RIGHT_COMPILE: - if (FileExtDot(st) && !WildCardMatch("*.PRJ.Z",st)) { - if (!PopUpCancelOk(ST_WARN_ST "Not .PRJ.Z File\n\n")) { - send_new_line=TRUE; + case RIGHT_ED: + "Ed(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + result=Ed(st); break; - } - } - "Cmp(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; - Cmp(st); - result=TRUE; - break; - case RIGHT_LOAD: - if (FileExtDot(st) && !WildCardMatch("*.BIN.Z",st)) { - if (!PopUpCancelOk(ST_WARN_ST "Not .BIN.Z File\n\n")) { - send_new_line=TRUE; + case RIGHT_PLAIN: + "Plain(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + result=Plain(st); break; - } - } - "Load(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; - WinZBufUpdate; - Load(st); - result=TRUE; - break; - case RIGHT_COPY: - StrCpy(fn.name,st); - if (DocFormDo(fn.name,"CEdFileName")) { - Copy(st,fn.name); - result=TRUE; - } - break; - case RIGHT_MOVE: - StrCpy(fn.name,st); - if (DocFormDo(fn.name,"CEdFileName")) { - Move(st,fn.name); - result=TRUE; - } - break; - case RIGHT_DEBUG: - if (FileExtDot(st) && !WildCardMatch("*.CPP.Z",st)) { - if (!PopUpCancelOk(ST_WARN_ST "Not .CPP.Z File\n\n")) { - send_new_line=TRUE; + case RIGHT_AUTOFILE: + if (FileExtDot(st) && !FilesFindMatch("*.AUT*",st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .AUT File\n\n")) { + send_new_line=TRUE; + break; + } + } + "AutoFile(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + AutoStr("%F\n",st); + result=TRUE; + break; + case RIGHT_AINCLUDE: + if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_JIT,st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) { + send_new_line=TRUE; + break; + } + } + "Adam(\"#include \\\"%s\\\"\" );\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + AdamFile(st,FALSE); + result=TRUE; + break; + case RIGHT_COMPILE: + if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_AOT,st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .PRJ File\n\n")) { + send_new_line=TRUE; + break; + } + } + "Cmp(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + result=!ToBool(Cmp(st)); + break; + case RIGHT_LOAD: + if (FileExtDot(st) && !FilesFindMatch("*.BIN*",st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .BIN File\n\n")) { + send_new_line=TRUE; + break; + } + } + "Load(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + result=ToBool(Load(st)); + break; + case RIGHT_BINREP: + if (FileExtDot(st) && !FilesFindMatch("*.BIN*",st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .BIN File\n\n")) { + send_new_line=TRUE; + break; + } + } + "BinRep(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + result=BinRep(st); + break; + case RIGHT_COPY: + StrCpy(fn.name,st); + if (DocFormDo(fn.name,"CEdFileName")) { + result=ToBool(Copy(st,fn.name)); + } else + send_new_line=TRUE; + break; + case RIGHT_MOVE: + StrCpy(fn.name,st); + if (DocFormDo(fn.name,"CEdFileName")) + result=Move(st,fn.name); + else + send_new_line=TRUE; + break; + case RIGHT_DEBUG: + if (FileExtDot(st) && !FilesFindMatch(FILENAME_MASK_JIT,st)) { + if (!PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) { + send_new_line=TRUE; + break; + } + } + "IDE(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; + WinZBufUpdate; + IDE(st); + result=TRUE; break; - } } - "IDE(\"%s\");\n$$FU$$$$FG$$$$BG$$",st; - WinZBufUpdate; - IDE(st); - result=TRUE; - break; - } + } else + send_new_line=TRUE; + Free(st); + } else + send_new_line=TRUE; + Free(st2); } else send_new_line=TRUE; DocBottom(doc); "$$FU$$$$FG$$$$BG$$"; if (send_new_line) - '' CH_NEW_LINE; + '\n'; return result; } -#help_index "Doc/Cmd Line (Typically);Cmd Line (Typically);Training" - -public U0 Man(U8 *_st) -//Enter the name of a sym and this -//will jump to the src code. -{ - U8 *st=MSPrintF("MN:%s",_st); - Ed(st); - Free(st); -} - -#help_index "Debugging;Doc/Cmd Line (Typically);Doc/Output;Cmd Line (Typically)" - + #help_index "Debugging/Dump;Doc/Cmd Line (Typically);Cmd Line (Typically);Doc/Output" public U0 DocDm(U8 *buf,I64 cnt=0x80) //Dumps a chunk of mem, showing //addresses. It is live and can be diff --git a/SparrowOS/Adam/Doc/DocNew.CPP b/TempleOS/Adam/Doc/DocNew.CPP similarity index 97% rename from SparrowOS/Adam/Doc/DocNew.CPP rename to TempleOS/Adam/Doc/DocNew.CPP index dbc9a91..1748af6 100644 --- a/SparrowOS/Adam/Doc/DocNew.CPP +++ b/TempleOS/Adam/Doc/DocNew.CPP @@ -3,7 +3,7 @@ I64 doc_tag_types[(DOCT_NUM_TYPES+63)/64], doc_form_types[(DOCT_NUM_TYPES+63)/64], doc_data_types[(DOCT_NUM_TYPES+63)/64]; I64 doc_clean_scancodes[4]={0,0,0,0}; -//Don't forget $LK,"doc_stop_btypes","FF:::/SparrowOS/Compiler/Lex.CPP.Z,doc_stop_btypes"$ +//Don't forget $LK,"doc_stop_btypes","FF:::/TempleOS/Compiler/Lex.CPP,doc_stop_btypes"$ U0 DocTablesInit() { doc_tag_types[0]= @@ -27,7 +27,7 @@ U0 DocTablesInit() 1<flags1&DOCEF1_LINK) { + if (doc_e->flags1 & DOCEF1_AUX_STR) + return StrNew(doc_e->aux_str,doc->mem_task); + else + return StrNew(doc_e->tag,doc->mem_task); + } + return NULL; +} + U0 DocFormFwd(CDoc *doc,Bool giveup=FALSE) { CDocEntry *doc_e=doc->cur_entry,*doc_e2=doc_e; @@ -806,7 +817,7 @@ public CDoc *DocAux(CTask *task=NULL) public CDoc *DocDblBufStart(CTask *task=NULL) -{ //See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ +{ //See $LK-A,"::/TempleOS/Demo/Spy.CPP"$ CDoc *doc,*doc2; Bool unlock_doc2,old_preempt=Preempt(OFF); if (!task) task=Fs; @@ -837,7 +848,7 @@ public CDoc *DocDblBufStart(CTask *task=NULL) } public Bool DocDblBufEnd(CTask *task=NULL) -{ //See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ +{ //See $LK-A,"::/TempleOS/Demo/Spy.CPP"$ Bool okay=FALSE,old_preempt=Preempt(OFF); CDoc *doc1,*doc2; if (!task) task=Fs; @@ -860,7 +871,7 @@ public Bool DocDblBufEnd(CTask *task=NULL) } public Bool DocDblBufSwap(CTask *task=NULL) -{ //See $LK,"::/SparrowOS/Demo/Spy.CPP.Z","FI:::/SparrowOS/Demo/Spy.CPP.Z"$ +{ //See $LK-A,"::/TempleOS/Demo/Spy.CPP"$ Bool okay=FALSE,old_preempt=Preempt(OFF); CDoc *doc1,*doc2; if (!task) task=Fs; diff --git a/TempleOS/Adam/Doc/DocOpt.CPP b/TempleOS/Adam/Doc/DocOpt.CPP new file mode 100644 index 0000000..81c3dd5 --- /dev/null +++ b/TempleOS/Adam/Doc/DocOpt.CPP @@ -0,0 +1,115 @@ +#help_index "Doc" + +I64 DocOptEntry(CDoc *,CDocEntry *doc_e) +{ + U8 *st,*st2,**dst; + I64 i,result=0; + if (doc_e->flags1&DOCEF1_LINK) { + if (doc_e->flags1 & DOCEF1_AUX_STR && + Bt(doc_tag_types,doc_e->type_u8) && + !MemCmp(doc_e->aux_str,"FI:",3) && + !StrCmp(doc_e->aux_str+3,doc_e->tag)) { + Free(doc_e->aux_str); + doc_e->aux_str=NULL; + doc_e->flags1&=~DOCEF1_AUX_STR; + result++; + } + if (doc_e->flags1 & DOCEF1_AUX_STR) + dst=&doc_e->aux_str; + else + dst=&doc_e->tag; + if (StrStr(*dst,".Z")) { + st=DocLinkFile(*dst); + if (FileFind(st)) { + if (IsDotZ(st)) + st[StrLen(st)-2]=0; + i=StrLen(st); + if ((st2=StrStr(*dst,st)) && st2[i]=='.' && st2[i+1]=='Z') { + StrCpy(st2+i,st2+i+2); + result++; + } + } + Free(st); + } +/* !!! Dangerous, but handy !!! + if (doc_e->flags1 & DOCEF1_AUX_STR) { + if (st=StrStr(doc_e->aux_str,".Z")) { + StrCpy(st,st+2); + result++; + } + } + if (Bt(doc_tag_types,doc_e->type_u8)) { + if (st=StrStr(doc_e->tag,".Z")) { + StrCpy(st,st+2); + result++; + } + } +*/ + } + if (doc_e->type_u8==DOCT_MACRO && doc_e->flags1&DOCEF1_AUX_STR && + doc_e->flags1&DOCEF1_LEFT_MACRO && !StrCmp(doc_e->tag,doc_e->left_macro) || + doc_e->flags1&DOCEF1_RIGHT_MACRO && !StrCmp(doc_e->tag,doc_e->right_macro)) { + doc_e->flags1&=~DOCEF1_AUX_STR; + Free(doc_e->aux_str); + doc_e->aux_str=NULL; + result++; + } + return result; +} + +public I64 DocOptDoc(CDoc *doc) +{//Optimize Doc + Bool unlock=DocLock(doc); + I64 result=0; + CDocEntry *doc_e; + DocRecalc(doc); + doc_e=doc->root.next; + while (doc_e!=doc) { + if (result+=DocOptEntry(doc,doc_e)) + result+=DocOptEntry(doc,doc_e); + doc_e=doc_e->next; + } + DocRecalc(doc); + if (unlock) + DocUnlock(doc); + return result; +} + +public I64 DocOptFile(U8 *filename) +{//Optimize File + I64 result; + CDoc *doc=DocRead(filename); + if (result=DocOptDoc(doc)) { + "-%d:%s\n",result,doc->filename.name; + DocWrite(doc); + } + DocDel(doc); + return result; +} + +I64 DocOptLst(CDirEntry *tempm1) +{ + I64 result=0; + CDirEntry *tempm2; + while (tempm1) { + tempm2=tempm1->next; + if (tempm1->attr & _ATTR_DIR) { + if (tempm1->sub) { + "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; + result+=DocOptLst(tempm1->sub); + } + } else + result+=DocOptFile(tempm1->full_name); + CDirEntryDel(tempm1); + tempm1=tempm2; + } + return result; +} + +public I64 DocOpt(U8 *files_find_mask="*",U8 *fu_flags=NULL) +{//Optimize Files + I64 f=0; + GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); + GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + return DocOptLst(FilesFind(files_find_mask,f)); +} diff --git a/SparrowOS/Adam/Doc/DocPlain.CPP b/TempleOS/Adam/Doc/DocPlain.CPP similarity index 99% rename from SparrowOS/Adam/Doc/DocPlain.CPP rename to TempleOS/Adam/Doc/DocPlain.CPP index 07356b5..afaddf4 100644 --- a/SparrowOS/Adam/Doc/DocPlain.CPP +++ b/TempleOS/Adam/Doc/DocPlain.CPP @@ -1190,7 +1190,7 @@ public CDocEntry *DocPutS(CDoc *doc,U8 *st) DocIns(doc,doc_e); ptr++; break; - case CH_TAB: + case '\t': doc_e=CAlloc(sizeof(CDocEntryBase),doc->mem_task); doc_e->type=DOCT_TAB | doc->settings_root.dft_text_attr << 8; DocIns(doc,doc_e); @@ -1251,7 +1251,7 @@ public CDocEntry *DocPutS(CDoc *doc,U8 *st) if (ch==CH_CARRIAGE_RETURN) while (*ptr==CH_CARRIAGE_RETURN) ptr++; - if (*ptr==CH_NEW_LINE) + if (*ptr=='\n') ptr++; while (*ptr==CH_CARRIAGE_RETURN) ptr++; diff --git a/SparrowOS/Adam/Doc/DocPopUp.CPP b/TempleOS/Adam/Doc/DocPopUp.CPP similarity index 95% rename from SparrowOS/Adam/Doc/DocPopUp.CPP rename to TempleOS/Adam/Doc/DocPopUp.CPP index 386278c..e032797 100644 --- a/SparrowOS/Adam/Doc/DocPopUp.CPP +++ b/TempleOS/Adam/Doc/DocPopUp.CPP @@ -40,7 +40,7 @@ public I64 DocEntryRun(CDoc *doc,CDocEntry *doc_e,Bool exited) Auto("%s",doc_e->left_macro); } } - } else if (ch==CH_NEW_LINE) { + } else if (ch=='\n') { if (doc_e->flags1 & DOCEF1_LINK && doc->right_click_link) result=(*doc->right_click_link)(doc,doc_e); if (doc_e->flags1 & DOCEF1_RIGHT_EXP) { @@ -77,7 +77,7 @@ U8 *EdOverStrikeCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) { CDoc *doc=doc_e->user_data; U8 *st=MAlloc(8,mem_task); - *st=doc->flags & DOCF_OVERSTRIKE ? 'O':CH_SINGLE_HORZ; + *st=doc->flags & DOCF_OVERSTRIKE ? 'O':'Ä'; st[1]=0; return st; } @@ -86,7 +86,7 @@ U8 *EdFilterCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) { CDoc *doc=doc_e->user_data; U8 *st=MAlloc(8,mem_task); - *st=doc->find_replace->filter_lines ? 'F':CH_SINGLE_HORZ; + *st=doc->find_replace->filter_lines ? 'F':'Ä'; st[1]=0; return st; } @@ -95,7 +95,7 @@ U8 *EdDollarCB(CDoc *,CDocEntry *doc_e,CTask *mem_task) { CDoc *doc=doc_e->user_data; U8 *st=MAlloc(8,mem_task); - *st=doc->flags & DOCF_IN_DOLLAR ? '$$':CH_SINGLE_HORZ; + *st=doc->flags & DOCF_IN_DOLLAR ? '$$':'Ä'; st[1]=0; return st; } @@ -115,7 +115,7 @@ U8 *EdQuotesCB(CDoc *,CDocEntry *,CTask *mem_task) { CLex *lx=mem_task->last_lex; U8 *st=MAlloc(8,mem_task); - *st=lx->flags & LF_IN_QUOTES ? '"':CH_SINGLE_HORZ; + *st=lx->flags & LF_IN_QUOTES ? '"':'Ä'; st[1]=0; return st; } @@ -124,7 +124,7 @@ U8 *EdBracesCB(CDoc *,CDocEntry *,CTask *mem_task) { CLex *lx=mem_task->last_lex; U8 *st=MAlloc(8,mem_task); - *st=lx->braces_cnt ? '}':CH_SINGLE_HORZ; + *st=lx->braces_cnt ? '}':'Ä'; st[1]=0; return st; } @@ -133,7 +133,7 @@ U8 *EdSemicolonCB(CDoc *,CDocEntry *,CTask *mem_task) { CLex *lx=mem_task->last_lex; U8 *st=MAlloc(8,mem_task); - *st=lx->statement_cnt ? ';':CH_SINGLE_HORZ; + *st=lx->statement_cnt ? ';':'Ä'; st[1]=0; return st; } @@ -282,9 +282,8 @@ public Bool DocDo(CDoc *doc,I64 doc_flags=0) DocQueIns(old_doc,Fs->last_doc); Fs->text_attr=old_attr; if (doc_flags&DOF_MIN_SIZE) { - Fs->win_top=old_top; Fs->win_bottom=old_bottom; - Fs->win_left=old_left; Fs->win_right=old_right; - TaskDerivedValsUpdate; + SetWinHorz(old_left,old_right); + SetWinVert(old_top,old_bottom); } Preempt(old_preempt); return result; @@ -297,7 +296,7 @@ public Bool DocFormDo(U8 *D,U8 *class_name, //Supply a class name that has fmtstr definitions //and this routine will allow user input. { - CMemberList *ml; + CMemberLst *ml; CDocEntry *doc_e; U8 *fmtstr; CHashClass *tempc; @@ -311,7 +310,7 @@ public Bool DocFormDo(U8 *D,U8 *class_name, doc->flags|=DOCF_OVERSTRIKE|DOCF_FORM; if (doc_flags&DOF_MIN_SIZE) doc->flags|=DOCF_MIN_SIZE; - ml=tempc->member_list; + ml=tempc->member_lst; while (ml) { if (fmtstr=MemberMetaData("fmtstr",ml)) { doc_e=DocPutS(doc,fmtstr); @@ -509,12 +508,12 @@ public Bool PopUpCd() } #help_index "Doc/Input" -public U8 *PopUpPickListEntry(U8 *lst) +public U8 *PopUpPickLstEntry(U8 *lst) { I64 i=0; CDoc *doc=DocNew; while (*lst) { - if (*lst=='@') { //Check for '@' alias list entry + if (*lst=='@') { //Check for '@' alias lst entry i--; lst++; } @@ -530,7 +529,7 @@ public U8 *PopUpPickListEntry(U8 *lst) public U8 *PopUpPickDefineSub(U8 *st) { - return PopUpPickListEntry(Define(st)); + return PopUpPickLstEntry(Define(st)); } public I64 PopUp1(U8 *b1,I64 n1,U8 *header=NULL,U8 *footer=NULL) @@ -687,8 +686,8 @@ public I64 AdamFile(U8 *filename,Bool warn_ext=TRUE) *name2=DftExt(name,"CPP.Z"); I64 result=0; if (warn_ext && - !WildCardMatch("*.CPP.Z",name2) && - !PopUpCancelOk(ST_WARN_ST "Not .CPP.Z File\n\n")) + !FilesFindMatch(FILENAME_MASK_JIT,name2) && + !PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) okay=FALSE; if (okay) result=Adam("#include \"%s\";",name2); @@ -705,8 +704,8 @@ public I64 PopUpFile(U8 *filename,Bool warn_ext=TRUE,CTask *parent=NULL,CTask ** *name2=DftExt(name,"CPP.Z"); I64 result=0; if (warn_ext && - !WildCardMatch("*.CPP.Z",name2) && - !PopUpCancelOk(ST_WARN_ST "Not .CPP.Z File\n\n")) + !FilesFindMatch(FILENAME_MASK_JIT,name2) && + !PopUpCancelOk(ST_WARN_ST "Not .CPP File\n\n")) okay=FALSE; if (okay) { st=MSPrintF("\"$$$$WW+H,1$$$$\";Auto(\"ExeFile(\\\"%s\\\");\\n\");UserTaskCont;",name2); @@ -823,8 +822,8 @@ U0 DrawIt(CTask *task,CDC *dc) } i=(17*PU_SPACING+FONT_WIDTH-1)/FONT_WIDTH; if (doc->max_x>i) i=doc->max_x; - task->win_right=task->win_left+i; - task->win_bottom=task->win_top+doc->max_y+(17*PU_SPACING+FONT_WIDTH-1)/FONT_WIDTH; + SetWinHorz(task->win_left,task->win_left+i,task); + SetWinVert(task->win_top,task->win_top+doc->max_y+(17*PU_SPACING+FONT_WIDTH-1)/FONT_WIDTH,task); } I64 DitherColorDo(U8 *header=NULL) diff --git a/SparrowOS/Adam/Doc/DocRecalc.CPP b/TempleOS/Adam/Doc/DocRecalc.CPP similarity index 97% rename from SparrowOS/Adam/Doc/DocRecalc.CPP rename to TempleOS/Adam/Doc/DocRecalc.CPP index 9cb80e6..8ef4ba9 100644 --- a/SparrowOS/Adam/Doc/DocRecalc.CPP +++ b/TempleOS/Adam/Doc/DocRecalc.CPP @@ -72,7 +72,7 @@ U0 DocDelToEntry(CDoc *doc,CDocEntry *clear_entry) } } -U0 DocBorderListDraw(CDoc *doc) +U0 DocBorderLstDraw(CDoc *doc) { CTask *win_task=doc->win_task; I64 i,y=-1,attr=win_task->border_attr<<8; @@ -105,7 +105,7 @@ U0 DocBorderListDraw(CDoc *doc) U8 doc_spaces[9]= {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0}; -U0 DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) +Bool DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) { 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,ijif,cur_u8_attr,temp_u32_attr, @@ -125,17 +125,17 @@ U0 DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) U8 *bptr,*ptr,buf[136],ch; U32 *u32_ptr,*hl; I32 *depth_buf=NULL; + F64 cur_time=tT; CWinScroll *vss,*hss; CHashDefineStr *temph; - if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) return; + if (!doc || doc->doc_signature!=DOC_SIGNATURE_VAL) return FALSE; - if (recalc==DOC_RECALC_TO_SCREEN && - (!Bt(&doc->locked_flags,DOClf_LOCKED) || doc->owning_task!=Fs)) { - i=8; + if (recalc==DOC_RECALC_TO_SCREEN && doc->owning_task!=Fs) { + ijif=sys_jiffies+JIFFY_FREQ/240; while (Bt(&doc->locked_flags,DOClf_LOCKED)) { - if (!--i) - return; + if (sys_jiffies>=ijif) + return FALSE; Yield; } } @@ -143,12 +143,12 @@ U0 DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) unlock=DocLock(doc); if (doc->doc_signature!=DOC_SIGNATURE_VAL) { DocUnlock(doc); - return; + return FALSE; } win_task=doc->win_task; mem_task=doc->mem_task; - blink_flag=Blink(,tP(win_task)); + blink_flag=Blink; dc=NULL; nobound_switch (recalc) { @@ -195,7 +195,7 @@ U0 DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) best_do_e=doc->cur_entry; if (!(doc->flags&(DOCF_PLAIN_TEXT|DOCF_PLAIN_TEXT_WITH_TABS)) && - IsSrcFile(doc->filename.name)) + FilesFindMatch(FILENAME_MASK_SRC,doc->filename.name)) doc->flags|=DOCF_HIGHLIGHT; else doc->flags&=~DOCF_HIGHLIGHT; @@ -249,7 +249,7 @@ U0 DocRecalc(CDoc *doc,Bool has_cursor=FALSE,I64 recalc=DOC_RECALC_ALL) y_plot_top=y0-scroll_y/FONT_HEIGHT; y_plot_bottom=y0+height-1-scroll_y/FONT_HEIGHT; if (!(doc->flags&DOCF_AUX_DOC) && !Bt(&win_task->display_flags,DISPLAYf_NO_BORDER)) - DocBorderListDraw(doc); + DocBorderLstDraw(doc); } if (doc->cur_data_col<=doc->cur_entry->min_col) @@ -643,7 +643,7 @@ skip_soft_cr: if (doc_e->flags1 & DOCEF1_SCROLLING_X) { j=StrLen(doc_e->tag); if (j && doc_e->scroll_len) { - ijif=tP(win_task)*FONT_WIDTH*DOC_SCROLL_SPEED; + ijif=cur_time*FONT_WIDTH*DOC_SCROLL_SPEED; ijif%=j*FONT_WIDTH; temp_u32_attr=temp_u32_attr & 0xFFE0FF00| (FONT_WIDTH-1-ijif&(FONT_WIDTH-1))<<16; @@ -1232,10 +1232,10 @@ adjust_xy: if (recalc!=DOC_RECALC_TO_SCREEN || doc_e->flags1&DOCEF1_DONT_DRAW) dc->flags|=DCF_DONT_DRAW; bptr=tempb->data; - ii=CSpriteTypeMask(bptr); + ii=SpriteTypeMask(bptr); if (ii&1<>4 &0xF ^ win_task->text_attr>>4 & 0xF; @@ -1278,16 +1278,16 @@ adjust_xy: depth_buf=dc->depth_buf; } else dc->depth_buf=depth_buf; - GrRotZEqu(dc->r,tP(win_task)*3.1); - GrRotYEqu(dc->r,tP(win_task)*1.9); - GrRotXEqu(dc->r,tP(win_task)); + GrRotZEqu(dc->r,cur_time*3.1); + GrRotYEqu(dc->r,cur_time*1.9); + GrRotXEqu(dc->r,cur_time); dc->flags|=DCF_TRANSFORMATION; dc->x=xx; dc->y=yy; dc->z=GR_Z_ALL; xx=0; yy=0; zz=0; } - CSpritePlot3(dc,xx,yy,zz,bptr); + SpritePlot3(dc,xx,yy,zz,bptr); dc->depth_buf=NULL; if (recalc==DOC_RECALC_TO_SCREEN && doc->cur_sprite==bptr) doc->cur_sprite_elem_num=dc->nearest_sprite_elem_num; @@ -1641,6 +1641,7 @@ skip: Free(depth_buf); if (unlock) DocUnlock(doc); + return TRUE; } public U0 DocInsSafe(CDoc *doc,U8 *st) @@ -1802,14 +1803,14 @@ U0 DocUpdateTaskDocs(CTask *task) I64 attr=task->border_attr; CDoc *doc=task->last_doc; CD3I64 saved_scroll; - Bool old_preempt=Preempt(OFF); + Bool old_preempt=Preempt(OFF),okay=TRUE; while (doc!=(&task->next_doc)(U8 *)-offset(CDoc.next_doc)) { - if (!(doc->flags&DOCF_DONT_SHOW)&&!Bt(&doc->locked_flags,DOClf_LOCKED)) { + if (!(doc->flags&DOCF_DONT_SHOW)) { if (doc->flags&DOCF_AUX_DOC) { if (attr&0xF!=attr>>4) doc->start_text_attr=attr; WinScrollNull(task,&saved_scroll); - DocRecalc(doc,FALSE,DOC_RECALC_TO_SCREEN); + okay=DocRecalc(doc,FALSE,DOC_RECALC_TO_SCREEN); WinScrollRestore(task,&saved_scroll); } else { if (doc->flags&DOCF_ATTR_BY_PRT) { @@ -1829,10 +1830,12 @@ U0 DocUpdateTaskDocs(CTask *task) if (attr&0xF!=attr>>4) task->border_attr=attr; Preempt(old_preempt); - DocRecalc(doc,TRUE,DOC_RECALC_TO_SCREEN); + okay=DocRecalc(doc,TRUE,DOC_RECALC_TO_SCREEN); Preempt(OFF); } } + if (!okay || doc->doc_in_que_signature!=DOC_IN_QUE_SIGNATURE_VAL) + break; doc=doc->last_doc; } Preempt(old_preempt); diff --git a/SparrowOS/Adam/Doc/DocTree.CPP b/TempleOS/Adam/Doc/DocTree.CPP similarity index 100% rename from SparrowOS/Adam/Doc/DocTree.CPP rename to TempleOS/Adam/Doc/DocTree.CPP diff --git a/SparrowOS/Adam/DocDefines.CPP b/TempleOS/Adam/DocDefines.CPP similarity index 67% rename from SparrowOS/Adam/DocDefines.CPP rename to TempleOS/Adam/DocDefines.CPP index 037cc4a..df9fc41 100644 --- a/SparrowOS/Adam/DocDefines.CPP +++ b/TempleOS/Adam/DocDefines.CPP @@ -2,20 +2,20 @@ U0 LoadDocDefines() { -//These are used in documents such as $LK,"::/SparrowOS/Doc/TrivialSolutions.TXT.Z","FI:::/SparrowOS/Doc/TrivialSolutions.TXT.Z"$ +//These are used in documents such as $LK-A,"::/TempleOS/Doc/TrivialSolutions.TXT"$ //The $LK,"CDoc","MN:CDoc"$ framework will search the sym table for define string //constants if you specify that. CBinFile *bfh=sys_boot_base-sizeof(CBinFile); DefinePrintF( - "DD_OSMAIN","%08X",bfh); + "DD_KERNEL","%08X",bfh); DefinePrintF( - "DD_OSMAIN2","%09,X",bfh); + "DD_KERNEL2","%09,X",bfh); bfh(I64)+=bfh->file_size-1; DefinePrintF( - "DD_OSMAIN_END","%08X",bfh); + "DD_KERNEL_END","%08X",bfh); DefinePrintF( - "DD_OSMAIN_END2","%09,X",bfh); + "DD_KERNEL_END2","%09,X",bfh); DefinePrintF( "DD_MP_VECT","%08X",MP_VECT_ADDR); @@ -24,12 +24,12 @@ U0 LoadDocDefines() DefinePrintF( - "DD_SPARROWOS_AGE","%h56D",GetCurTimeCDate-A2CDate("8/1/2003")); + "DD_TEMPLEOS_AGE","%h56D",GetCurTimeCDate-A2CDate("8/1/2003")); - //This is cut and replaced when I generate a distribution. - //See $LK,"DD_SPARROWOS_LOC","FF:::/SparrowOS/Demo/AcctExample/TSDistribute.CPP.Z,DD_SPARROWOS_LOC"$. + //This is cut and replaced when I generate a distro. + //See $LK,"DD_TEMPLEOS_LOC","FF:::/TempleOS/Demo/AcctExample/TSDistro.CPP,DD_TEMPLEOS_LOC"$. $TR-C,"LineCnt"$ -$ID,4$DefinePrintF("DD_SPARROWOS_LOC","137,965"); +$ID,4$DefinePrintF("DD_TEMPLEOS_LOC","139,640"); $ID,-4$ DefinePrintF( "DD_PAGE_TABLE_BASE","%08X",PAGE_TABLE_BASE); diff --git a/SparrowOS/Adam/Dsk/ChkDsk.CPP b/TempleOS/Adam/Dsk/ChkDsk.CPP similarity index 91% rename from SparrowOS/Adam/Dsk/ChkDsk.CPP rename to TempleOS/Adam/Dsk/ChkDsk.CPP index ec2d456..0c8e182 100644 --- a/SparrowOS/Adam/Dsk/ChkDsk.CPP +++ b/TempleOS/Adam/Dsk/ChkDsk.CPP @@ -11,7 +11,7 @@ Bool ChkDskConfirm(Bool *_fix,Bool *_confirm) return *_fix; } -I64 NativeFSChkDskList(CDirEntry *tempm1,U8 *bits,U8 *bits2,I64 size,I64 bpc) +I64 NativeFSChkDskLst(CDirEntry *tempm1,U8 *bits,U8 *bits2,I64 size,I64 bpc) { CDirEntry *tempm2; I64 i,j,errs=0; @@ -19,7 +19,7 @@ I64 NativeFSChkDskList(CDirEntry *tempm1,U8 *bits,U8 *bits2,I64 size,I64 bpc) tempm2=tempm1->next; if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) - errs+=NativeFSChkDskList(tempm1->sub,bits,bits2,size,bpc); + errs+=NativeFSChkDskLst(tempm1->sub,bits,bits2,size,bpc); } j=(tempm1->size+bpc-1)/bpc; for (i=0;inext; if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) - errs+=FAT32ChkDskList(p,tempm1->sub,bits,bits2,size,bpc); + errs+=FAT32ChkDskLst(p,tempm1->sub,bits,bits2,size,bpc); } i=0; c=tempm1->cluster; @@ -186,7 +186,7 @@ I64 FAT32ChkDsk(U8 drv_let,Bool *_fix,Bool *_confirm) c=ClusterNumNext(p,c); } - errs+=FAT32ChkDskList(p,FilesFind(files_find_mask,1<. -//See $LK,"::/SparrowOS/Demo/Dsk/Raw.CPP.Z","FI:::/SparrowOS/Demo/Dsk/Raw.CPP.Z"$. +//See $LK-A,"::/TempleOS/Demo/Dsk/Raw.CPP"$. U8 *buf=MAlloc(BLK_SIZE); RBlks(Fs->cur_prt,buf,blk,1); @@ -21,7 +21,7 @@ public U8 *DBlk(I64 blk,Bool write=FALSE) public U8 *DCluster(I64 c,Bool write=FALSE,I64 num=0) {//Dump Disk Cluster. //If you set write to TRUE, it will be written when you press . -//See $LK,"::/SparrowOS/Demo/Dsk/Raw.CPP.Z","FI:::/SparrowOS/Demo/Dsk/Raw.CPP.Z"$. +//See $LK-A,"::/TempleOS/Demo/Dsk/Raw.CPP"$. //Do $LK,"Dir","MN:Dir"$("*",TRUE); to get cluster numbers of files. U8 *buf=MAlloc(Fs->cur_prt->spc<cur_prt,c,num); @@ -76,7 +76,7 @@ I64 OFCompare(CDirEntry *e1,CDirEntry *e2) } public CDirEntry **FilesOrder(CDirEntry *tempm,I64 *_cnt=NULL) -{ //See $LK,"::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z","FI:::/SparrowOS/Demo/Dsk/OrderedIO.CPP.Z"$. +{ //See $LK-A,"::/TempleOS/Demo/Dsk/OrderedIO.CPP"$. I64 cnt=CFileCnt(tempm),i=0; CDirEntry **a=MAlloc(sizeof(CDirEntry *)*cnt); OFFlatten(tempm,a,&i); @@ -97,8 +97,7 @@ public Bool Copy(U8 *src_files_find_mask,U8 *dst_files_find_mask=".") if (!(tempm=FilesFind(src_files_find_mask))) return FALSE; if (IsDir(dst_files_find_mask)) { - fa=FileAccessNew(dst_files_find_mask,TRUE); - if (fa) { + if (fa=FileAccessNew(dst_files_find_mask,TRUE)) { while (tempm) { tempm1=tempm->next; if (!(tempm->attr & _ATTR_DIR)) { @@ -163,17 +162,13 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask) } Free(st1); Free(st2); - - fa=FileAccessNew(src_files_find_mask,TRUE); - if (fa) { - tempm=SysFilesFind(fa->mask,1<mask,FUF_RECURSE); st1=CurDir; FileAccessDel(fa); i1=StrLen(st1); if (i1==3) i1--; - - fa=FileAccessNew(dst_files_find_mask,TRUE,TRUE); - if (fa) { + if (fa=FileAccessNew(dst_files_find_mask,TRUE,TRUE)) { st2=CurDir; i2=StrLen(st2); if (i2==3) i2--; @@ -181,72 +176,78 @@ public I64 CopyTree(U8 *src_files_find_mask,U8 *dst_files_find_mask) FileAccessDel(fa); Free(st2); } - CDirListDel(tempm); + CDirLstDel(tempm); Free(st1); } return result; } -U0 DelTreeDirs(CDirEntry *tempm1) +I64 DelTreeDirs(CDirEntry *tempm1) { + I64 result=0; CDirEntry *tempm2; while (tempm1) { tempm2=tempm1->next; if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) - DelTreeDirs(tempm1->sub); - SysDel(tempm1->full_name,TRUE); + result+=DelTreeDirs(tempm1->sub); + result+=SysDel(tempm1->full_name,TRUE); } CDirEntryDel(tempm1); tempm1=tempm2; } + return result; } -U0 DelTreeFiles(CDirEntry *tempm1) +I64 DelTreeFiles(CDirEntry *tempm1) { + I64 result=0; CDirEntry *tempm2; while (tempm1) { tempm2=tempm1->next; if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) - DelTreeFiles(tempm1->sub); + result+=DelTreeFiles(tempm1->sub); } else - SysDel(tempm1->full_name,FALSE); + result+=SysDel(tempm1->full_name,FALSE); CDirEntryDel(tempm1); tempm1=tempm2; } + return result; } -public U0 DelTree(U8 *files_find_mask,U8 *fu_flags=NULL) +public I64 DelTree(U8 *files_find_mask,U8 *fu_flags=NULL) { - I64 fuf_flags=0; + I64 result=0,fuf_flags=0; GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (IsDir(files_find_mask)) { - DelTreeDirs(FilesFind(files_find_mask,fuf_flags)); - SysDel(files_find_mask,TRUE); - SysDel(files_find_mask,FALSE); + result=DelTreeDirs(FilesFind(files_find_mask,fuf_flags)); + result+=SysDel(files_find_mask,TRUE); + result+=SysDel(files_find_mask,FALSE); } else - DelTreeFiles(FilesFind(files_find_mask,fuf_flags)); + result=DelTreeFiles(FilesFind(files_find_mask,fuf_flags)); + return result; } -U0 TouchFile(U8 *filename,U8 *attr,CDate ltdt=0) //Just one file +U0 TouchFile(U8 *filename,U8 *attr,CDate spdt=0) //Just one file { CPrt *p=Drv2Prt(*filename); CDirEntry de; U8 *cur_dir=StrNew(filename), buf[136]; - if (FileFind(filename,&de,FALSE,TRUE)) { + if (FileFind(filename,&de,FUF_JUST_FILES)) { + Free(de.full_name); if (!StrCmp(attr,"+?")) - "%-32ts %s\n",filename,SPrintFFlags(buf,Define("ST_FILE_ATTRS"),de.attr); + "%-48ts %s\n",filename,SPrintFFlags(buf,Define("ST_FILE_ATTRS"),de.attr); else { StrFirstRem(cur_dir,":"); StrLastRem(cur_dir,"/"); if (!*cur_dir) StrCpy(cur_dir,"/"); GetFFlags(&de.attr,Define("ST_FILE_ATTRS"),attr); - if (ltdt) - de.datetime=ltdt; + if (spdt) + de.datetime=spdt; else de.datetime=GetCurTimeCDate; CDirNew(p,cur_dir,&de,FALSE); @@ -254,7 +255,7 @@ U0 TouchFile(U8 *filename,U8 *attr,CDate ltdt=0) //Just one file } else PutDefineErr("ST_FILE_NOT_FOUND"); } -U0 TouchList(CDirEntry *tempm1,U8 *attr,CDate ltdt=0) +U0 TouchLst(CDirEntry *tempm1,U8 *attr,CDate spdt=0) { CDirEntry *tempm2; while (tempm1) { @@ -262,25 +263,27 @@ U0 TouchList(CDirEntry *tempm1,U8 *attr,CDate ltdt=0) if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) { "%S%s\n","ST_SCANNING_DIR",tempm1->full_name; - TouchList(tempm1->sub,attr,ltdt); + TouchLst(tempm1->sub,attr,spdt); } } else - TouchFile(tempm1->full_name,attr,ltdt); + TouchFile(tempm1->full_name,attr,spdt); CDirEntryDel(tempm1); tempm1=tempm2; } } -public U0 Touch(U8 *files_find_mask,U8 *attr="+?",U8 *fu_flags=NULL,CDate ltdt=0) +public U0 Touch(U8 *files_find_mask,U8 *attr="+?",U8 *fu_flags=NULL,CDate spdt=0) { //Attr "+?" =show // "+T" =resident +//To Set Date +// Touch(filename,"",,datetime); I64 fuf_flags=0; GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - TouchList(FilesFind(files_find_mask,fuf_flags),attr,ltdt); + TouchLst(FilesFind(files_find_mask,fuf_flags),attr,spdt); } -I64 FFList(CDirEntry *tempm1) +I64 FFLst(CDirEntry *tempm1) { I64 cnt=0; CDirEntry *tempm2; @@ -289,7 +292,7 @@ I64 FFList(CDirEntry *tempm1) tempm2=tempm1->next; if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) - cnt+=FFList(tempm1->sub); + cnt+=FFLst(tempm1->sub); } else { PutFileLink(tempm1->full_name); NewLine; @@ -307,7 +310,7 @@ public I64 FF(U8 *files_find_mask,U8 *fu_flags=NULL) I64 cnt=0,fuf_flags=0; GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - cnt+=FFList(FilesFind(files_find_mask,fuf_flags)); + cnt+=FFLst(FilesFind(files_find_mask,fuf_flags)); return cnt; } @@ -408,7 +411,7 @@ I64 TreeSizeFiles(CDirEntry *tempm,I64 round_to) return result; } -public I64 TreeSize(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL,I64 round_to=0) +public I64 TreeSize(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL,I64 round_to=0) { //Does not include directory size of base directory, but //does include size of sub directories. @@ -418,7 +421,7 @@ public I64 TreeSize(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL,I64 rou GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); if (tempm1=FilesFind(files_find_mask,fuf_flags)) { result=TreeSizeFiles(tempm1,round_to); - CDirListDel(tempm1); + CDirLstDel(tempm1); } return result; } diff --git a/SparrowOS/Adam/Dsk/Dsk2b.CPP b/TempleOS/Adam/Dsk/Dsk2b.CPP similarity index 73% rename from SparrowOS/Adam/Dsk/Dsk2b.CPP rename to TempleOS/Adam/Dsk/Dsk2b.CPP index 7745e1f..167a659 100644 --- a/SparrowOS/Adam/Dsk/Dsk2b.CPP +++ b/TempleOS/Adam/Dsk/Dsk2b.CPP @@ -68,7 +68,7 @@ public CDirEntry *CDirTreeUnflatten(U8 *src) } #help_index "Install;File/Install Related" -#help_file "::/SparrowOS/Doc/Install" +#help_file "::/TempleOS/Doc/Install" #define ROUND_PRT_TO (63*255) #define PRT_HEADER 63 @@ -91,7 +91,7 @@ public U0 PrtDsk(U8 drv_let=0) CPlannedPrt root,*temppp; CMasterBoot mbr; Bool pri=TRUE; - I64 ext_base,num_prt,pri_cnt=0, + I64 ext_base,drv_let2,pri_cnt=0, i,start_offset,offset,remaining; "This command does not play well\n" "with other operating systems.\n" @@ -126,12 +126,12 @@ public U0 PrtDsk(U8 drv_let=0) QueInit(&root); - num_prt=bdev->drv_let_base; + drv_let2=bdev->first_drv_let; remaining=FloorU64(bdev->max_blk+1,ROUND_PRT_TO); while (FloorU64(remaining,ROUND_PRT_TO)>=ROUND_PRT_TO) { temppp=MAlloc(sizeof(CPlannedPrt)); do { - "$$FG,RED$$Partition %C$$FG$$\n",num_prt; + "$$FG,RED$$Partition %C$$FG$$\n",drv_let2; temppp->pri=FALSE; if (pri) { "Primary Partition"; @@ -150,17 +150,17 @@ public U0 PrtDsk(U8 drv_let=0) } while (!(ROUND_PRT_TO<=temppp->size<=FloorU64(remaining,ROUND_PRT_TO))); QueIns(temppp,root.last); remaining-=temppp->size; - num_prt++; + drv_let2++; } "\n\n!!! Repartition Drive !!!\n\n"; temppp=root.next; - num_prt=bdev->drv_let_base; + drv_let2=bdev->first_drv_let; while (temppp!=&root) { - "Drive %C:%08X %s\n",num_prt,temppp->size, + "Drive %C:%08X %s\n",drv_let2,temppp->size, temppp->pri ? "Primary":"Logical"; temppp=temppp->next; - num_prt++; + drv_let2++; } if (!AreYouSure) goto pd_done; @@ -226,8 +226,8 @@ public U0 PrtDsk(U8 drv_let=0) } bdev->flags&=~(BDF_INITIALIZED | BDF_INIT_IN_PROGRESS); - BlkDevAdd(bdev,FALSE); - for (i=bdev->drv_let_base;ifirst_drv_let;iwin_pixel_height, radius; CPrt *p; - CBlkDev *bdev=Drv2BlkDevFwded(drv_let); + CBlkDev *bdev=Drv2BlkDev(drv_let); CDC *dc=DCAlias; F64 sect_start,sect_end; @@ -403,147 +403,8 @@ public U0 DskView(U8 drv_let=0) public U0 BlkDevRep() { I64 i; - for (i=0;ioffset,result=0,start=0,i,j,n,to_go,size, - contiguous=0,new_drv_let; - Bool good,proceed=FALSE; - try { - while (!result) { - '-'; - n=p->size+p->offset-blk; - if (n>SC_BLK_CNT) - n=SC_BLK_CNT; - if (!n) - break; - RBlks(p,buf,blk,1); - d=buf; - qq=d; - if (d[127]==signature) { - b=d; - good=TRUE; - for (j=16;jsize+p->offset-blk; - if (n>SC_BLK_CNT) - n=SC_BLK_CNT; - RBlks(p,buf,blk,n); - for (i=0;iSC_BLK_CNT) - n=SC_BLK_CNT; - RBlks(p,buf,blk,n); - for (i=0;icatch_except=TRUE; - - Cd("HOME"); - Free(buf); - - if (proceed) { - "New Drive Letter:"; - new_drv_let=ToUpper(GetChar); - NewLine; - bdev=&sys_blkdevs[num_blkdevs++]; - bdev->drv_let_base=new_drv_let; - bdev->blk_size=BLK_SIZE; - bdev->min_blk=start; - bdev->max_blk=start+contiguous-1; - bdev->non_native_drv=drv_let; - bdev->non_native_offset=start; - bdev->type=BDT_NON_NATIVE_FILE; - bdev->flags=BDF_FMT; - if (!BlkDevAdd(bdev,FALSE)) - PutDefine("ST_FAILED"); - Drv(new_drv_let); - "File Blk: 0x%X\n",start; - result=start; - } else - result=0; - return result; + for (i=0;iw[0]=1; - StrCpy(&et->w[2],"SparrowOS"); + StrCpy(&et->w[2],"TempleOS"); et->w[15]=0xAA55; j=0; for (i=0;i<16;i++) //Checksum @@ -562,7 +513,7 @@ public I64 CDFileCreate(U8 *filename=NULL,U8 *src_files_find_mask,U8 *fu_flags=N FWBlks(out_file,tabbuf2,cur_blk<<2,tabsize2<<2); cur_blk+=tabsize2; - CDirListDel2(rootdir); + CDirLstDel2(rootdir); FillU32Palindrome(&iso->vol_space_size,cur_blk); FillU32Palindrome(&iso2->vol_space_size,cur_blk); FWBlks(out_file,iso,16<<2,4); diff --git a/SparrowOS/Adam/Dsk/FileMgr.CPP b/TempleOS/Adam/Dsk/FileMgr.CPP similarity index 96% rename from SparrowOS/Adam/Dsk/FileMgr.CPP rename to TempleOS/Adam/Dsk/FileMgr.CPP index 2623ead..2194f2f 100644 --- a/SparrowOS/Adam/Dsk/FileMgr.CPP +++ b/TempleOS/Adam/Dsk/FileMgr.CPP @@ -24,22 +24,22 @@ U0 CDirFileDoc(CDoc *doc,CDirEntry *tempm) #help_index "File/Cmd Line (Typically);Cmd Line (Typically)" -class CFMUncollapsedList +class CFMUncollapsedLst { - CFMUncollapsedList *next; + CFMUncollapsedLst *next; U8 *name; }; -CFMUncollapsedList *FMCollectUncollapsedList(CDoc *doc) +CFMUncollapsedLst *FMCollectUncollapsedLst(CDoc *doc) { CDocEntry *doc_e=doc->root.next; - CFMUncollapsedList *result=NULL,*tempc; + CFMUncollapsedLst *result=NULL,*tempc; CDirEntry *tempm; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TREE) { if (!(doc_e->flags1&DOCEF1_CHECKED_COLLAPSED)) { if (tempm=doc_e->user_data) { - tempc=MAlloc(sizeof(CFMUncollapsedList)); + tempc=MAlloc(sizeof(CFMUncollapsedLst)); tempc->next=result; result=tempc; tempc->name=StrNew(tempm->full_name); @@ -51,10 +51,10 @@ CFMUncollapsedList *FMCollectUncollapsedList(CDoc *doc) return result; } -U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedList *tempc,U8 *cur_entry,U8 *next_entry) +U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedLst *tempc,U8 *cur_entry,U8 *next_entry) { CDocEntry *doc_e=doc->root.next; - CFMUncollapsedList *tempc1; + CFMUncollapsedLst *tempc1; CDirEntry *tempm; while (doc_e!=doc) { if (doc_e->type_u8==DOCT_TREE) { @@ -100,9 +100,9 @@ U0 FMMarkUncollapsed(CDoc *doc,CFMUncollapsedList *tempc,U8 *cur_entry,U8 *next_ } } -U0 FMDelUncollapsedList(CFMUncollapsedList *tempc) +U0 FMDelUncollapsedLst(CFMUncollapsedLst *tempc) { - CFMUncollapsedList *tempc1; + CFMUncollapsedLst *tempc1; while (tempc) { tempc1=tempc->next; Free(tempc->name); @@ -121,7 +121,7 @@ CDirEntry *FMRebuildDocDrv(U8 drv_let,CDoc *doc,CDirEntry **_root,Bool init) tempm->attr=_ATTR_DIR; st=MSPrintF("%c:/*",drv_let); if (init) - tempm->sub=tempm1=FilesFind(st,1<sub=tempm1=FilesFind(st,FUF_RECURSE); else tempm1=NULL; Free(st); @@ -148,7 +148,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) CPrt *p; I64 i; CDoc *doc=*_doc,*doc2=sys_clipboard_doc,*parent_doc; - CFMUncollapsedList *tempc=NULL; + CFMUncollapsedLst *tempc=NULL; U8 *cur_entry=NULL,*next_entry=NULL; CDocEntry *doc_ce; CDirEntry *tempm,*tempm1,*cur_tree_entry; @@ -191,11 +191,11 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) if (tempm) next_entry=StrNew(tempm->full_name); - tempc=FMCollectUncollapsedList(doc); + tempc=FMCollectUncollapsedLst(doc); DocDel(doc); } if (*_root) { - CDirListDel(*_root); + CDirLstDel(*_root); *_root=NULL; } doc=DocNew; @@ -204,7 +204,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) doc->flags|=DOCF_FORM; switch (mode) { case FM_NORMAL: - DocPutS(doc,"$$FG,PURPLE$$File Manager$$FG$$\n\n$$LK,\"Click for Help\",\"FI:::/SparrowOS/Doc/FileMgr.TXT.Z\"$$\n\n"); + DocPutS(doc,"$$FG,PURPLE$$File Manager$$FG$$\n\n$$LK,\"Click for Help\",\"FI:::/TempleOS/Doc/FileMgr.TXT\"$$\n\n"); break; case FM_PICK_FILE: DocPutS(doc,"$$FG,PURPLE$$Pick file and press $$FG$$\n\n"); @@ -233,7 +233,7 @@ U0 FMRebuildDoc(CDoc **_doc,CDirEntry **_root,I64 mode) FMMarkUncollapsed(doc,tempc,cur_entry,next_entry); DocCenter(doc); DocRst(doc2,TRUE); - FMDelUncollapsedList(tempc); + FMDelUncollapsedLst(tempc); Free(cur_entry); Free(next_entry); *_doc=doc; @@ -557,7 +557,7 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) SettingsPush; //See $LK,"SettingsPush","MN:SettingsPush"$ fp_old_final_screen_update=fp_final_screen_update; - MenuFilePush("::/SparrowOS/Doc/FileMgrPullDown.TXT.Z"); + MenuFilePush("::/TempleOS/Doc/FileMgrPullDown.TXT"); FMRebuildDoc(&doc,&root,mode); if (tempm1=CdDir(root,old_cur_dir)) doc->cur_entry=tempm1->user_data; @@ -651,7 +651,7 @@ public U8 *FileMgr(I64 mode=FM_NORMAL,CTask *mem_task=NULL) ch=CH_CTRLY; if (ch && sc&SCF_ALT) goto regular_key; switch (ch) { - case CH_NEW_LINE: + case '\n': DocUnlock(doc); FMRightClick; DocLock(doc); @@ -754,7 +754,7 @@ regular_key: DocQueIns(old_doc,Fs->last_doc); SettingsPop; DocDel(doc); - CDirListDel(root); + CDirLstDel(root); Cd(old_cur_dir); Free(old_cur_dir); if (mode!=FM_NORMAL && !result) diff --git a/SparrowOS/Adam/FileBMP.CPP b/TempleOS/Adam/FileBMP.CPP similarity index 50% rename from SparrowOS/Adam/FileBMP.CPP rename to TempleOS/Adam/FileBMP.CPP index afac4d3..94fbe5d 100644 --- a/SparrowOS/Adam/FileBMP.CPP +++ b/TempleOS/Adam/FileBMP.CPP @@ -26,59 +26,87 @@ class CFileBMP CBGR palette[16]; }; - -CFileBMP *BMPFileNew(I64 width,I64 height,I64 bits) +public CFileBMP *BMPFile4To(CDC *dc) { - CFileBMP *r; - I64 size; - if (bits==24) - size=offset(CFileBMP.end)+ - width*height*sizeof(CRGB); - else if (bits==4) - size=offset(CFileBMP.end)+ - width*height>>1+16*sizeof(CBGR); - else { - "Format Not Supported.\n"; - return NULL; - } - r=CAlloc(size); - r->type=0x4D42; +//To Windows 4 bit BMP + U8 *src,*ptr; + I64 x,y,w=dc->width>>1, + size=offset(CFileBMP.end)+dc->width*dc->height>>1+16*sizeof(CBGR); + CFileBMP *r=CAlloc(size); + r->type='BM'; r->planes=1; r->file_size=size; r->data_offset=offset(CFileBMP.end); r->header_size=offset(CFileBMP.end)- offset(CFileBMP.header_size); - r->width=width; - r->height=height; - if (bits==24) { - r->bit_cnt=32; - r->image_size=width*height<<2; - } else { - r->bit_cnt=4; - r->image_size=width*height>>1; - r->data_offset+=16*sizeof(CBGR); - GetVGAPalette4(r->palette); + r->width=dc->width; + r->height=dc->height; + r->bit_cnt=4; + r->image_size=dc->width*dc->height>>1; + r->data_offset+=16*sizeof(CBGR); + GetVGAPalette4(r->palette); + ptr=r(U8 *)+r->data_offset; + for (y=dc->height-1;y>=0;y--) { + src=y*dc->width_internal+dc->body; + for (x=0;xwidth,dc->height,4); - I64 x,y,w=dc->width>>1; - U8 *bgr; - bgr=r(U8 *)+r->data_offset; +//To Windows RLE4 bit BMP + U8 *src,*ptr; + I64 x,y,w=dc->width,cnt,pattern; + CFileBMP *r=CAlloc(offset(CFileBMP.end)+2*(dc->width+1)*dc->height+16*sizeof(CBGR)); + r->type='BM'; + r->planes=1; + r->data_offset=offset(CFileBMP.end); + r->header_size=offset(CFileBMP.end)- + offset(CFileBMP.header_size); + r->width=dc->width; + r->height=dc->height; + r->bit_cnt=4; + r->compression=2; //RLE4 + r->data_offset+=16*sizeof(CBGR); + GetVGAPalette4(r->palette); + ptr=r(U8 *)+r->data_offset; for (y=dc->height-1;y>=0;y--) { src=y*dc->width_internal+dc->body; - for (x=0;ximage_size=ptr-(&r->data_offset)(U8 *); + r->file_size=offset(CFileBMP.end)+r->image_size+16*sizeof(CBGR); return r; } @@ -86,9 +114,19 @@ public CFileBMP *BMPFile24To(CDC *dc) { //To Windows 24 bit BMP U8 *src; - CFileBMP *r=BMPFileNew(dc->width,dc->height,24); - I64 i,x,y; + I64 i,x,y,size=offset(CFileBMP.end)+dc->width*dc->height*sizeof(CRGB); CBGR *bgr; + CFileBMP *r=CAlloc(size); + r->type='BM'; + r->planes=1; + r->file_size=size; + r->data_offset=offset(CFileBMP.end); + r->header_size=offset(CFileBMP.end)- + offset(CFileBMP.header_size); + r->width=dc->width; + r->height=dc->height; + r->bit_cnt=32; + r->image_size=dc->width*dc->height<<2; bgr=r(U8 *)+r->data_offset; for (y=dc->height-1;y>=0;y--) { @@ -113,9 +151,17 @@ public I64 BMPFileWrite(U8 *filename,CDC *dc,I64 bits=4) { //Window's BMP Files I64 size; CFileBMP *r; - if (bits==4) - r=BMPFile4To(dc); - else if (bits==24) + if (bits==4) { + if (IsDotZ(filename)) //.Z compression is better than RLE + r=BMPFile4To(dc); + else { + r=BMPFileRLE4To(dc); + if (r->file_size>offset(CFileBMP.end)+dc->width*dc->height>>1+16*sizeof(CBGR)) { + Free(r); + r=BMPFile4To(dc); + } + } + } else if (bits==24) r=BMPFile24To(dc); else { "Format Not Supported.\n"; @@ -154,29 +200,57 @@ U8 ms_paint_palette[16]={0,4,2,6,1,5,3,8,7,12,10,14,9,13,11,15}; public CDC *BMPFileRead(U8 *filename,Bool use_ms_paint_palette=FALSE) { //Window's BMP Files - I64 i,j; - U8 *palette_map,*ptr1; + I64 i,j,cnt; + U8 *palette_map,*ptr; + Bool rle4; CFileBMP *r; CDC *result=NULL; - if (ptr1=FileRead(filename)) { - r=ptr1; + if (ptr=FileRead(filename)) { + r=ptr; if (0widthheightwidth,r->height); - ptr1+=r->data_offset; + ptr+=r->data_offset; if (r->bit_cnt==4) { + if (r->compression==2) + rle4=TRUE; + else + rle4=FALSE; if (use_ms_paint_palette) palette_map=ms_paint_palette; else palette_map=BMPFilePaletteNew(r); for (i=r->height-1;i>=0;i--) - for (j=0;j<(r->width+7)&-8;) { - result->color=palette_map[*ptr1&15]; - GrPlot(result,j+1,i); - result->color=palette_map[*ptr1>>4]; - GrPlot(result,j,i); - ptr1++; - j+=2; - } + if (rle4) { //We don't support full RLE4, just our own subset + j=0; + while (cnt=*ptr++) { + if (cnt==1) { + result->color=palette_map[*ptr++&15]; + GrPlot(result,j++,i); + } else { + if (cnt==2 && *ptr>>4!=*ptr&15) { + result->color=palette_map[*ptr&15]; + GrPlot(result,j+1,i); + result->color=palette_map[*ptr>>4]; + GrPlot(result,j,i); + ptr++; + j+=2; + } else { + result->color=palette_map[*ptr++&15]; + while (cnt--) + GrPlot(result,j++,i); + } + } + } + ptr++; + } else + for (j=0;j<(r->width+7)&-8;) { + result->color=palette_map[*ptr&15]; + GrPlot(result,j+1,i); + result->color=palette_map[*ptr>>4]; + GrPlot(result,j,i); + ptr++; + j+=2; + } if (!use_ms_paint_palette) Free(palette_map); } else { diff --git a/SparrowOS/Adam/Gr/CSpriteBitMap.CPP b/TempleOS/Adam/Gr/CSpriteBitMap.CPP similarity index 97% rename from SparrowOS/Adam/Gr/CSpriteBitMap.CPP rename to TempleOS/Adam/Gr/CSpriteBitMap.CPP index 6574af8..c78d894 100644 --- a/SparrowOS/Adam/Gr/CSpriteBitMap.CPP +++ b/TempleOS/Adam/Gr/CSpriteBitMap.CPP @@ -24,7 +24,7 @@ #define GEBM_TRIM_TO_EXTENTS 23 #define GEBM_UNDO 24 -I64 PopUpCSpriteBitMap(CColorROPU32 color,I64 width,I64 snap,F64 ip_scaler) +I64 PopUpSpriteBitMap(CColorROPU32 color,I64 width,I64 snap,F64 ip_scaler) { I64 i; U8 *st1,*st2,buf[136]; @@ -138,7 +138,7 @@ tr_done: DCDel(img); } -I64 CSpriteBitMap(CDC *dc,I64 *_xx1,I64 *_yy1,I64 *_xx2,I64 *_yy2,CDC **_img,CColorROPU32 bkcolor,I64 *_import_snap=NULL,F64 *_import_ip_scaler=NULL) +I64 SpriteBitMap(CDC *dc,I64 *_xx1,I64 *_yy1,I64 *_xx2,I64 *_yy2,CDC **_img,CColorROPU32 bkcolor,I64 *_import_snap=NULL,F64 *_import_ip_scaler=NULL) { I64 i,j,mode=GEBM_LINE,color=BLACK,width=1,msg_code,p1,p2,x1,y1,x11,y11,x22,y22,new_snap=1, result,xx1=*_xx1,yy1=*_yy1,xx2=*_xx2,yy2=*_yy2; @@ -179,7 +179,7 @@ I64 CSpriteBitMap(CDC *dc,I64 *_xx1,I64 *_yy1,I64 *_xx2,I64 *_yy2,CDC **_img,CCo case MSG_IP_R_DOWN: bm_menu: DCFill(dc); - switch (i=PopUpCSpriteBitMap(color,width,new_snap,new_ip_scaler)) { + switch (i=PopUpSpriteBitMap(color,width,new_snap,new_ip_scaler)) { case DOCM_CANCEL: result=GE_CANCEL; goto bm_done; diff --git a/SparrowOS/Adam/Gr/CSpriteEd.CPP b/TempleOS/Adam/Gr/CSpriteEd.CPP similarity index 93% rename from SparrowOS/Adam/Gr/CSpriteEd.CPP rename to TempleOS/Adam/Gr/CSpriteEd.CPP index c920d6a..247e406 100644 --- a/SparrowOS/Adam/Gr/CSpriteEd.CPP +++ b/TempleOS/Adam/Gr/CSpriteEd.CPP @@ -277,7 +277,7 @@ CSprite *GrTransformBitMap(I64 r[4][4],CSprite *tempg) } -U0 CSpriteTransform(I64 r[4][4],CSprite *root) +U0 SpriteTransform(I64 r[4][4],CSprite *root) { I64 i,j,k,num, x,y,z,x1,y1,z1,x2,y2,z2,x3,y3,z3; @@ -473,7 +473,7 @@ U0 CSpriteTransform(I64 r[4][4],CSprite *root) } } -CSprite *CSpriteDoc2Que(CDoc *doc,CSprite *root,I64 *cur_num) +CSprite *SpriteDoc2Que(CDoc *doc,CSprite *root,I64 *cur_num) { CSprite *result=CAlloc(sizeof(CSprite)),*tempg; CDocEntry *doc_e=doc->root.next; @@ -502,7 +502,7 @@ CSprite *CSpriteDoc2Que(CDoc *doc,CSprite *root,I64 *cur_num) return result; } -U0 PickCSpriteDocNew(CDoc *doc,CSprite *root,I64 old_num) +U0 PickSpriteDocNew(CDoc *doc,CSprite *root,I64 old_num) { CSprite *tempg; CDocEntry *doc_e=NULL; @@ -511,7 +511,7 @@ U0 PickCSpriteDocNew(CDoc *doc,CSprite *root,I64 old_num) tempg=root->next; while (tempg!=root) { - st=CSprite2Text(tempg); + st=Sprite2Text(tempg); if (cur_num==old_num) { DocPutS(doc,"$$FM,LTRED$$"); doc_e=DocPrintF(doc,"$$MU-UL,\"%Q\",%d$$\n",st,cur_num++); @@ -533,7 +533,7 @@ U0 PickCSpriteDocNew(CDoc *doc,CSprite *root,I64 old_num) doc->cur_entry=doc_e; } -U0 CSpriteSideBarTask2(CTask *grand_parent) +U0 SpriteSideBarTask2(CTask *grand_parent) { I64 w,h; CTask *parent=Fs->parent_task,*pu_task; @@ -541,34 +541,32 @@ U0 CSpriteSideBarTask2(CTask *grand_parent) pu_task=grand_parent->popup_task; if (TaskValidate(pu_task)) { w=parent->win_right-parent->win_left; - parent->win_left=pu_task->win_right+2; - parent->win_right=parent->win_left+w; + SetWinHorz(pu_task->win_right+2,pu_task->win_right+2+w,parent); h=parent->win_bottom-parent->win_top; - parent->win_top=pu_task->win_top; - parent->win_bottom=parent->win_top+h; + SetWinVert(pu_task->win_top,pu_task->win_top+h,parent); } WinMgrSync; } } -U0 CSpriteSideBarTask(CTask *parent,CSprite **_root,I64 *cur_num) +U0 SpriteSideBarTask(CTask *parent,CSprite **_root,I64 *cur_num) { CDocEntry *doc_e; CDoc *doc=DocCur; - Spawn(&CSpriteSideBarTask2,parent,"CSpriteTask",Fs); + Spawn(&SpriteSideBarTask2,parent,"CSpriteTask",Fs); doc->flags|=DOCF_MIN_SIZE|DOCF_FORM; while (TRUE) { - PickCSpriteDocNew(doc,*_root,*cur_num); + PickSpriteDocNew(doc,*_root,*cur_num); View; doc_e=doc->cur_entry; if (doc_e->type_u8==DOCT_MENU_VAL) *cur_num=doc_e->left_exp; - *_root=CSpriteDoc2Que(doc,*_root,cur_num); + *_root=SpriteDoc2Que(doc,*_root,cur_num); DocClear(doc); } } -U8 *CSpriteHexDoc2CSprite(CDoc *doc,I64 *cur_num,CTask *mem_task=NULL) +U8 *SpriteHexDoc2Sprite(CDoc *doc,I64 *cur_num,CTask *mem_task=NULL) { I64 num=0,size=gr_sprite_base_size[GRST_END]; U8 *result,*dst; @@ -598,7 +596,7 @@ U8 *CSpriteHexDoc2CSprite(CDoc *doc,I64 *cur_num,CTask *mem_task=NULL) return result; } -Bool CSpriteTextEd(CSprite **_root,I64 *cur_num) +Bool SpriteTextEd(CSprite **_root,I64 *cur_num) { Bool result; U8 *st; @@ -608,18 +606,18 @@ Bool CSpriteTextEd(CSprite **_root,I64 *cur_num) doc->flags|=DOCF_FORM; tempg=root->next; while (tempg!=root) { - st=CSprite2Text(tempg); + st=Sprite2Text(tempg); DocPrintF(doc,"$$FG,BLUE$$%s$$FG$$\n",st); Free(st); - doc_e=DocPrintF(doc,"$$HX,%d,16$$",CSpriteElemSize(tempg)); + doc_e=DocPrintF(doc,"$$HX,%d,16$$",SpriteElemSize(tempg)); doc_e->data=&tempg->start; tempg=tempg->next; } if (result=ServantUser("DocDo(0x%X,0x%X);",doc,0)) { - tempg=CSpriteHexDoc2CSprite(doc,cur_num); + tempg=SpriteHexDoc2Sprite(doc,cur_num); QueDel(root); Free(root); - root=CSprite2Que(tempg); + root=Sprite2Que(tempg); } DocDel(doc); if (_root) *_root=root; @@ -642,13 +640,13 @@ Bool CSpriteTextEd(CSprite **_root,I64 *cur_num) U0 GrInit2() { - DefineListLoad("ST_CSPRITE_ED_MENU"," \0Pick Graphically\0Set Origin\0" + DefineLstLoad("ST_CSPRITE_ED_MENU"," \0Pick Graphically\0Set Origin\0" "Shift Origin\0Shift Points\0Shift Rects\0Transform\0Shift SubOrigin\0Insert Object\0" "Insert Clipboard\0Delete Object\0Edit\0Snap\0"); } GrInit2; -I64 PopUpCSpriteEd(CSprite **_root,I64 snap,F64 ip_scaler,I64 *cur_num) +I64 PopUpSpriteEd(CSprite **_root,I64 snap,F64 ip_scaler,I64 *cur_num) { U8 *st; CTask *pu_task; @@ -669,12 +667,12 @@ I64 PopUpCSpriteEd(CSprite **_root,I64 snap,F64 ip_scaler,I64 *cur_num) "$$MU-UL,\"Insert Clipboard CSprite's\",GED_INS_CLIPBOARD$$\n" "\n$$MU-UL,\"End\",GED_END$$\n" "$$MU-UL,\"Cancel\",DOCM_CANCEL$$",snap,ip_scaler); - st=MSPrintF("CSpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,cur_num); + st=MSPrintF("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,cur_num); PopUp(st,NULL,&pu_task); Free(st); i=PopUpMenu(doc); if (TaskValidate(pu_task)) { - *_root=CSpriteDoc2Que(DocCur(pu_task),*_root,cur_num); + *_root=SpriteDoc2Que(DocCur(pu_task),*_root,cur_num); Kill(pu_task); } DocDel(doc); @@ -693,7 +691,7 @@ class CSpritePt I32 *x,*y,*z,*w,*h; }; -U0 CSpritePtQueNew(U8 *elems,I64 x,I64 y,CSpritePt *root) +U0 SpritePtQueNew(U8 *elems,I64 x,I64 y,CSpritePt *root) { I64 i,cur_num=0; I32 *ptr; @@ -813,7 +811,7 @@ U0 CSpritePtQueNew(U8 *elems,I64 x,I64 y,CSpritePt *root) QueIns(temppe,root->last); break; } - tempg(U8 *)+=CSpriteElemSize(tempg); + tempg(U8 *)+=SpriteElemSize(tempg); cur_num++; } } @@ -869,14 +867,14 @@ U0 GESPCtrlPtsMove(CSpritePt *root,I64 dx,I64 dy) } } -Bool CSpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_num,I64 mode) +Bool SpriteShiftPts(U8 *elems,I64 x,I64 y,I64 *_cur_num,I64 mode) { I64 msg_code,p1,p2,xx,yy,xx2,yy2,dd,best_dd,cur_num; Bool old_preempt,result=TRUE; CDC *dc=DCAlias; CSpritePt root,*temppe,*best_pe; - CSpritePtQueNew(elems,x,y,&root); + SpritePtQueNew(elems,x,y,&root); cur_num=0; if (root.next!=&root) { old_preempt=Preempt(OFF); @@ -1022,9 +1020,9 @@ U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *_import_snap=NULL,F64 *_import_i tempb=doc_ce->bin_data; old_size=tempb->size; old_CSprite=tempb->data; - root=CSprite2Que(old_CSprite); + root=Sprite2Que(old_CSprite); - cur_num=CSpriteCntQue(root); + cur_num=SpriteCntQue(root); tempb->data=MAllocIdentical(old_CSprite); DocUnlock(doc); do { @@ -1032,7 +1030,7 @@ U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *_import_snap=NULL,F64 *_import_i StrCpy(doc->filename.name,old_filename); doc->flags|=old_doc_flags; doc_ce->flags1|=DOCEF1_DONT_DRAW; - i=PopUpCSpriteEd(&root,new_snap,new_ip_scaler,&cur_num); + i=PopUpSpriteEd(&root,new_snap,new_ip_scaler,&cur_num); GrEdUpdate(doc,tempb,root); if (i>=0) { StrCpy(Fs->task_title,DefineSub(i,"ST_CSPRITE_ED_MENU")); @@ -1105,16 +1103,16 @@ U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *_import_snap=NULL,F64 *_import_i "Press '$$FG,GREEN$$r$$FG$$' after one rectangle\n" "to OR another rectangle.\n"); doc_ce->flags1=old_ce_flags1; - if (CSpriteShiftPts(tempb->data,x,y,&cur_num,i)) { + if (SpriteShiftPts(tempb->data,x,y,&cur_num,i)) { QueDel(root); Free(root); - root=CSprite2Que(tempb->data); + root=Sprite2Que(tempb->data); } else GrEdUpdate(doc,tempb,root); break; case GED_TRANSFORM: if (PopUpTransform(r)) { - CSpriteTransform(r,root); + SpriteTransform(r,root); GrEdUpdate(doc,tempb,root); } break; @@ -1149,7 +1147,7 @@ U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *_import_snap=NULL,F64 *_import_i doc_e=sys_clipboard_doc->root.next; while (doc_e!=sys_clipboard_doc) { if (doc_e->type_u8==DOCT_SPRITE) { - root2=CSprite2Que(doc_e->bin_data->data); + root2=Sprite2Que(doc_e->bin_data->data); if (root2->next!=root2) { tempg=root2->next; while (tempg!=root2) { @@ -1173,7 +1171,7 @@ U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *_import_snap=NULL,F64 *_import_i break; case GED_VECT: doc_ce->flags1=old_ce_flags1; - switch (CSpriteVect(doc,doc_ce,&root,&cur_num,x,y,FALSE,&new_snap,&new_ip_scaler)) { + switch (SpriteVect(doc,doc_ce,&root,&cur_num,x,y,FALSE,&new_snap,&new_ip_scaler)) { case GE_OKAY_DONE: i=GED_END; break; @@ -1191,7 +1189,7 @@ U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *_import_snap=NULL,F64 *_import_i } break; case GED_ED: - if (CSpriteTextEd(&root,&cur_num)) + if (SpriteTextEd(&root,&cur_num)) GrEdUpdate(doc,tempb,root); break; } diff --git a/SparrowOS/Adam/Gr/CSpriteMesh.CPP b/TempleOS/Adam/Gr/CSpriteMesh.CPP similarity index 99% rename from SparrowOS/Adam/Gr/CSpriteMesh.CPP rename to TempleOS/Adam/Gr/CSpriteMesh.CPP index 32972a3..7a689bc 100644 --- a/SparrowOS/Adam/Gr/CSpriteMesh.CPP +++ b/TempleOS/Adam/Gr/CSpriteMesh.CPP @@ -428,7 +428,7 @@ U0 MPDrawIt(CGrMFrame *e) //Multiprocessing draw it, called by each core. while (tempt!=&e->triangle_root) { if (tempt->cpu_num==Gs->num) { if (tempt->flags & TF_SELECTED) { - if (Blink(,tP(e->dc->win_task))) + if (Blink) dc->color=ROPF_DITHER+WHITE<<16+RED; else dc->color=ROPF_DITHER+RED<<16+WHITE; @@ -689,7 +689,7 @@ U0 DrawIt(CTask *task,CDC *dc) while (tempv!=&e->vertex_root) { x=tempv->pt.x; y=tempv->pt.y; z=tempv->pt.z; if (e->vertex_on) { - if (Blink(10,tP(task))) //This blinks at 10 Hz. + if (Blink(10)) //This blinks at 10 Hz. dc->color=ROPF_DITHER+BLACK<<16+WHITE; else dc->color=ROPF_DITHER+WHITE<<16+BLACK; @@ -698,12 +698,12 @@ U0 DrawIt(CTask *task,CDC *dc) } if (tempv->flags&VF_SELECTED) { if (e->mode=='t') { - if (Blink(10,tP(task))) //This blinks at 10 Hz. + if (Blink(10)) //This blinks at 10 Hz. dc->color=ROPF_DITHER+e->cur_color.c0.color<<16+e->cur_color.c0.color^8; else dc->color=ROPF_DITHER+(e->cur_color.c0.color^8)<<16+e->cur_color.c0.color; } else { - if (Blink(,tP(task))) + if (Blink) dc->color=ROPF_DITHER+RED<<16+WHITE; else dc->color=ROPF_DITHER+WHITE<<16+RED; @@ -729,14 +729,14 @@ U0 DrawIt(CTask *task,CDC *dc) GrPrintF(dc,0,0,"%6.3f%% (%d,%d,%d)",e->view_scale*100,x,y,z); dc->pen_width=1; dc->color&=0xF; - if (Blink(10,tP(task))) + if (Blink(10)) dc->color^=0xF; GrLine3(dc,x,y,z,x,y,0); if (e->select_rect) { dc->flags&=~DCF_TRANSFORMATION; dc->pen_width=1; - if (Blink(,tP(task))) + if (Blink) dc->color=ROPF_DITHER+RED<<16+WHITE; else dc->color=ROPF_DITHER+WHITE<<16+RED; @@ -888,7 +888,7 @@ If root points to a mesh, it will load it. Returns a newly malloced mesh or NULL. -See $LK,"::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpritePlot3D.CPP.Z"$. +See $LK-A,"::/TempleOS/Demo/Graphics/SpritePlot3D.CPP"$. $WW,0$*/ diff --git a/SparrowOS/Adam/Gr/CSpriteNew.CPP b/TempleOS/Adam/Gr/CSpriteNew.CPP similarity index 94% rename from SparrowOS/Adam/Gr/CSpriteNew.CPP rename to TempleOS/Adam/Gr/CSpriteNew.CPP index 0b43fdc..95c066b 100644 --- a/SparrowOS/Adam/Gr/CSpriteNew.CPP +++ b/TempleOS/Adam/Gr/CSpriteNew.CPP @@ -1,5 +1,5 @@ #help_index "Graphics/CSprite" -#help_file "::/SparrowOS/Doc/CSprite" +#help_file "::/TempleOS/Doc/Sprite" I64 gr_sprite_base_size[GRST_NUM_TYPES]= { @@ -82,7 +82,7 @@ offset(CSprite.st), //GRST_TEXT_DIAMOND }; -I64 CSpriteElemSize(CSprite *tempg) +I64 SpriteElemSize(CSprite *tempg) { I64 i=gr_sprite_base_size[tempg->type]; switch (tempg->type) { @@ -116,15 +116,15 @@ I64 CSpriteElemSize(CSprite *tempg) return i; } -public I64 CSpriteSize(U8 *elems) +public I64 SpriteSize(U8 *elems) { CSprite *tempg=elems-offset(CSprite.start),*tempg1=tempg; while (tempg->type) - tempg(U8 *)+=CSpriteElemSize(tempg); + tempg(U8 *)+=SpriteElemSize(tempg); return tempg(U8 *)-tempg1(U8 *)+gr_sprite_base_size[GRST_END]; } -I64 CSpriteTypeMask(U8 *elems) +I64 SpriteTypeMask(U8 *elems) { I64 result=0; CSprite *tempg=elems-offset(CSprite.start); @@ -132,7 +132,7 @@ I64 CSpriteTypeMask(U8 *elems) if (tempg->type>=GRST_NUM_TYPES) return 1<type); - tempg(U8 *)+=CSpriteElemSize(tempg); + tempg(U8 *)+=SpriteElemSize(tempg); } return result; } @@ -167,8 +167,8 @@ public U8 *DC2Sprite(CDC *tempb) return tempg(U8 *)+offset(CSprite.start); } -public U8 *CSprite2Text(CSprite *tempg) -{ //Study $LK,"::/SparrowOS/Demo/Graphics/SpriteText.CPP.Z","FI:::/SparrowOS/Demo/Graphics/SpriteText.CPP.Z"$. +public U8 *Sprite2Text(CSprite *tempg) +{ //Study $LK-A,"::/TempleOS/Demo/Graphics/SpriteText.CPP"$. U8 buf[256],buf2[256],buf3[136]; I32 *ptr; SPrintF(buf,"%Z",tempg->type,"ST_CSPRITE_TYPES"); diff --git a/SparrowOS/Adam/Gr/CSpriteVect.CPP b/TempleOS/Adam/Gr/CSpriteVect.CPP similarity index 96% rename from SparrowOS/Adam/Gr/CSpriteVect.CPP rename to TempleOS/Adam/Gr/CSpriteVect.CPP index d797a76..f1107c1 100644 --- a/SparrowOS/Adam/Gr/CSpriteVect.CPP +++ b/TempleOS/Adam/Gr/CSpriteVect.CPP @@ -7,7 +7,7 @@ #define GRST_INS_TRANSPARENT_SCREEN_BITMAP -6 #define GRST_ED -7 -I64 PopUpCSpriteVect(Bool new_sprite,CSprite **_root,I64 snap,F64 ip_scaler,I64 *cur_num) +I64 PopUpSpriteVect(Bool new_sprite,CSprite **_root,I64 snap,F64 ip_scaler,I64 *cur_num) { U8 *st; CTask *pu_task; @@ -43,7 +43,7 @@ I64 PopUpCSpriteVect(Bool new_sprite,CSprite **_root,I64 snap,F64 ip_scaler,I64 "$$MU-UL,\"Insert Transparent Screen BitMap\",GRST_INS_TRANSPARENT_SCREEN_BITMAP$$\n" "$$FM,PURPLE$$$$MU-UL,\"+] Create/Edit 3D Mesh\",GRST_MESH$$\n" "$$MU-UL,\"+] Create/Edit Shiftable 3D Mesh\",GRST_SHIFTABLE_MESH$$\n" - "$$MU-UL,\"+] Create/Edit BitMap\",GRST_BITMAP8$$\n" + "$$MU-UL,\"+] Create/Edit as BitMap\",GRST_BITMAP8$$\n" "\n$$FG,RED$$Advanced$$FG$$\n" "$$MU-UL,\"Transform On (For use with icons)\",GRST_TRANSFORM_ON$$\n" "$$MU-UL,\"Transform Off(For use with icons)\",GRST_TRANSFORM_OFF$$\n" @@ -53,12 +53,12 @@ I64 PopUpCSpriteVect(Bool new_sprite,CSprite **_root,I64 snap,F64 ip_scaler,I64 if (new_sprite) DocPutS(doc,"$$MU-UL,\"Cancel\",DOCM_CANCEL$$\n"); DocPutS(doc,"\nRight-Click to get back to this menu."); - st=MSPrintF("CSpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,cur_num); + st=MSPrintF("SpriteSideBarTask(0x%X,0x%X,0x%X);",Fs,_root,cur_num); PopUp(st,NULL,&pu_task); Free(st); i=PopUpMenu(doc); if (TaskValidate(pu_task)) { - *_root=CSpriteDoc2Que(DocCur(pu_task),*_root,cur_num); + *_root=SpriteDoc2Que(DocCur(pu_task),*_root,cur_num); Kill(pu_task); } DocDel(doc); @@ -77,7 +77,7 @@ Bool GrPolyPtPlot(CSprite *root,I64 x,I64 y,I64) return TRUE; } -CSprite *CSpriteFromQue(CSprite *root,U32 *_size=NULL) +CSprite *SpriteQueFrom(CSprite *root,U32 *_size=NULL) { I64 s,size=gr_sprite_base_size[GRST_END]; CSprite *result,*tempg; @@ -85,14 +85,14 @@ CSprite *CSpriteFromQue(CSprite *root,U32 *_size=NULL) tempg=root->next; while (tempg!=root) { - size+=CSpriteElemSize(tempg); + size+=SpriteElemSize(tempg); tempg=tempg->next; } result=MAlloc(size); dst=result; tempg=root->next; while (tempg!=root) { - s=CSpriteElemSize(tempg); + s=SpriteElemSize(tempg); MemCpy(dst,&tempg->start,s); dst+=s; tempg=tempg->next; @@ -102,7 +102,7 @@ CSprite *CSpriteFromQue(CSprite *root,U32 *_size=NULL) return result; } -CSprite *CSprite2Que(U8 *elems) +CSprite *Sprite2Que(U8 *elems) { I64 s; CSprite *result=CAlloc(sizeof(CSprite)), @@ -110,8 +110,8 @@ CSprite *CSprite2Que(U8 *elems) *tempg1; result->next=result->last=result; while (tempg->type) { - tempg1=MAlloc(CSpriteElemSize(tempg)+offset(CSprite.start)); - s=CSpriteElemSize(tempg); + tempg1=MAlloc(SpriteElemSize(tempg)+offset(CSprite.start)); + s=SpriteElemSize(tempg); MemCpy(&tempg1->start,&tempg->start,s); QueIns(tempg1,result->last); tempg(U8 *)+=s; @@ -139,7 +139,7 @@ U0 GrEdUpdate(CDoc *doc,CDocBin *tempb,CSprite *root) { Bool unlock=DocLock(doc); Free(tempb->data); - tempb->data=CSpriteFromQue(root,&tempb->size); + tempb->data=SpriteQueFrom(root,&tempb->size); if (unlock) DocUnlock(doc); } @@ -179,7 +179,7 @@ U0 GrSetSettings(CDC *dc,CSprite *root,I64 cur_num,CColorROPU32 *_color,I64 *_wi U0 GrScreenInit(CDC *dc,I64,I64) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 xx,yy,old_pen_width=dc->pen_width; CColorROPU32 old_color=dc->color; WinMgrSync; @@ -204,7 +204,7 @@ U0 GrScreenInit(CDC *dc,I64,I64) dc->pen_width=old_pen_width; } -I64 CSpriteVect(CDoc *doc,CDocEntry *doc_e,CSprite **_root,I64 *cur_num,I64 x,I64 y,Bool new_sprite,I64 *_import_snap=NULL,F64 *_import_ip_scaler=NULL) +I64 SpriteVect(CDoc *doc,CDocEntry *doc_e,CSprite **_root,I64 *cur_num,I64 x,I64 y,Bool new_sprite,I64 *_import_snap=NULL,F64 *_import_ip_scaler=NULL) { I64 result,i,msg_code,z,x1,y1,z1,x2,y2,x3,y3,p1,p2,xx1,yy1,xx2,yy2, num,old_width,size,eletype=GRST_MENU,width,new_snap=1, @@ -243,7 +243,7 @@ I64 CSpriteVect(CDoc *doc,CDocEntry *doc_e,CSprite **_root,I64 *cur_num,I64 x,I6 StrCpy(doc->filename.name,old_filename); doc->flags|=old_doc_flags; - eletype=PopUpCSpriteVect(new_sprite,_root,new_snap,new_ip_scaler,cur_num); + eletype=PopUpSpriteVect(new_sprite,_root,new_snap,new_ip_scaler,cur_num); GrEdUpdate(doc,tempb,*_root); insert_pt=GrNum2Que(*_root,*cur_num); switch (eletype) { @@ -383,7 +383,7 @@ I64 CSpriteVect(CDoc *doc,CDocEntry *doc_e,CSprite **_root,I64 *cur_num,I64 x,I6 bm_bkcolor=i; if (eletype!=GRST_INS_TRANSPARENT_SCREEN_BITMAP) { GrEdUpdate(doc,tempb,*_root); - CSpriteExtents(tempb->data,&xx1,&xx2,&yy1,&yy2); + SpriteExtents(tempb->data,&xx1,&xx2,&yy1,&yy2); if (xx1<=xx2 && yy1<=yy2 && PopUpNoYes("Use extents of the CSprite?\n")) { doc_e->flags1=old_ce_flags1; old_width=dc->pen_width; @@ -706,13 +706,13 @@ ei_bitmap: tempg1=insert_pt; if (tempg1==*_root || tempg1->type!=GRST_BITMAP8) { GrSetSettings(img,*_root,0,&color,&width,-(xx1-x),-(yy1-y)); - CSpritePlot3(img,-(xx1-x),-(yy1-y),0,tempb->data); + SpritePlot3(img,-(xx1-x),-(yy1-y),0,tempb->data); QueDel(*_root); insert_pt=(*_root)->next=(*_root)->last=*_root; *cur_num=1; } else { GrSetSettings(img,*_root,*cur_num,&color,&width,-(xx1-x),-(yy1-y)); - CSpritePlot3(img,-(xx1-x),-(yy1-y),0,tempg1(U8 *)+offset(CSprite.start),TRUE); + SpritePlot3(img,-(xx1-x),-(yy1-y),0,tempg1(U8 *)+offset(CSprite.start),TRUE); insert_pt=tempg1->next; QueRem(tempg1); Free(tempg1); @@ -720,7 +720,7 @@ ei_bitmap: MemCpy(tempg(U8 *)+offset(CSprite.linespeed),img->body,((xx2-xx1+7)&~7)*(yy2-yy1)); doc_e->flags1|=DOCEF1_DONT_DRAW; - switch (i=CSpriteBitMap(dc,&xx1,&yy1,&xx2,&yy2,&img,bm_bkcolor,&new_snap,&new_ip_scaler)) { + switch (i=SpriteBitMap(dc,&xx1,&yy1,&xx2,&yy2,&img,bm_bkcolor,&new_snap,&new_ip_scaler)) { case GE_OKAY_DONE: case GE_OKAY_CONT: Free(tempg); @@ -1204,7 +1204,7 @@ ei_done: return result; } -I64 CSpriteCntQue(CSprite *root) +I64 SpriteCntQue(CSprite *root) { CSprite *tempg=root->next; I64 result=0; @@ -1243,11 +1243,11 @@ U0 EdInsGraphic(CDoc *doc,I64 x,I64 y) if (doc_e && Bt(doc_tag_types,doc_e->type_u8) && doc_e->tag && *doc_e->tag) tempb->tag=StrNew(doc_e->tag,doc->mem_task); DocUnlock(doc); - root=CSprite2Que(tempb->data); + root=Sprite2Que(tempb->data); x+=StrLen(doc_e->tag)*FONT_WIDTH; WinMgrSync(2,TRUE); - switch (CSpriteVect(doc,doc_e,&root,&cur_num,x,y,TRUE,&new_snap,&new_ip_scaler)) { + switch (SpriteVect(doc,doc_e,&root,&cur_num,x,y,TRUE,&new_snap,&new_ip_scaler)) { case GE_CANCEL: QueDel(root); Free(root); diff --git a/SparrowOS/Adam/Gr/Gr.CPP b/TempleOS/Adam/Gr/Gr.CPP similarity index 89% rename from SparrowOS/Adam/Gr/Gr.CPP rename to TempleOS/Adam/Gr/Gr.CPP index 352315e..1e90046 100644 --- a/SparrowOS/Adam/Gr/Gr.CPP +++ b/TempleOS/Adam/Gr/Gr.CPP @@ -1,4 +1,17 @@ #help_index "Graphics" +U0 GrInit() +{ + DefineLstLoad("ST_CSPRITE_TYPES","End\0 \0Color 8Bit\0 \0Point\0" + "Line\0PolyLine\0PolyPoint\0Width\0Shift\0" + "BSpline2\0BSpline3\0BSpline2 Closed\0BSpline3 Closed\0" + " \0 \0 \0Rect\0Circle\0Flood Fill Not Color\0Flood Fill\0BitMap 8Bit\0" + " \0Text\0Ellipse\0Reg Polygon\0Planar Symmetry\0" + "Dither Color 8Bit\0Rotated Rect\0Mesh\0Shiftable Mesh\0" + "Transform On\0Transform Off\0Arrow\0Text Box\0Text Diamond\0"); +} +GrInit; + +#help_index "Graphics/CSprite" #define GRST_END 0 //Unused #define GRST_COLOR8 2 @@ -37,18 +50,6 @@ #define GRST_TEXT_DIAMOND 35 #define GRST_NUM_TYPES 36 -U0 GrInit() -{ - DefineListLoad("ST_CSPRITE_TYPES","End\0 \0Color 8Bit\0 \0Point\0" - "Line\0PolyLine\0PolyPoint\0Width\0Shift\0" - "BSpline2\0BSpline3\0BSpline2 Closed\0BSpline3 Closed\0" - " \0 \0 \0Rect\0Circle\0Flood Fill Not Color\0Flood Fill\0BitMap 8Bit\0" - " \0Text\0Ellipse\0Reg Polygon\0Planar Symmetry\0" - "Dither Color 8Bit\0Rotated Rect\0Mesh\0Shiftable Mesh\0" - "Transform On\0Transform Off\0Arrow\0Text Box\0Text Diamond\0"); -} -GrInit; - class CMeshTri { I32 color; //Give one of 0-7 colors. Colors 8-15 are 0-7 with intensity bit set. @@ -58,7 +59,7 @@ class CMeshTri public class CSprite { //See $LK,"Graphics/CSprite","HI:Graphics/CSprite"$ -//See $LK,"::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z","FL:::/SparrowOS/Adam/Gr/GrSpritePlot.CPP.Z,1"$ for how CSprite are stored. +//See $LK,"::/TempleOS/Adam/Gr/GrSpritePlot.CPP","FL:::/TempleOS/Adam/Gr/GrSpritePlot.CPP,1"$ for how CSprite are stored. CSprite *next,*last; U0 start; @@ -93,12 +94,13 @@ public class CSprite I32 sides; }; +#help_index "Graphics" extern CDC *DCNew(I64 type,I64 width,I64 height,CTask *task=NULL,Bool null_bitmap=FALSE); extern CDC *DCAlias(CDC *dc=NULL,CTask *task=NULL); extern U0 DCDel(CDC *dc); extern U0 EdExistingGraphic(CDoc *doc,I64 x,I64 y,I64 *import_snap=NULL,F64 *import_ip_scaler=NULL); -extern CSprite *CSpriteDoc2Que(CDoc *doc,CSprite *root,I64 *cur_num); +extern CSprite *SpriteDoc2Que(CDoc *doc,CSprite *root,I64 *cur_num); extern Bool GrBlot3(CDC *dc,I64 x1,I64 y1,I64 z1,CDC *img); extern U8 *GrBitMap4ToBitMap8(U8 *dst,U8 *src,I64 src_size,I64 bkcolor); diff --git a/SparrowOS/Adam/Gr/GrAsm.CPP b/TempleOS/Adam/Gr/GrAsm.CPP similarity index 100% rename from SparrowOS/Adam/Gr/GrAsm.CPP rename to TempleOS/Adam/Gr/GrAsm.CPP diff --git a/SparrowOS/Adam/Gr/GrBitMap.CPP b/TempleOS/Adam/Gr/GrBitMap.CPP similarity index 99% rename from SparrowOS/Adam/Gr/GrBitMap.CPP rename to TempleOS/Adam/Gr/GrBitMap.CPP index 4f6910b..f7bcc87 100644 --- a/SparrowOS/Adam/Gr/GrBitMap.CPP +++ b/TempleOS/Adam/Gr/GrBitMap.CPP @@ -800,10 +800,10 @@ public Bool GrPutS(CDC *dc,I64 x,I64 y,U8 *_s) Bool result=FALSE,first=TRUE; if (!_s) return FALSE; while (ch=*_s++) { - if (ch==CH_NEW_LINE) { + if (ch=='\n') { x=x0; y+=FONT_HEIGHT; - } else if (ch==CH_TAB) + } else if (ch=='\t') x=x0+CeilU64(x-x0+FONT_WIDTH,8*FONT_WIDTH); else { if (first) { @@ -825,10 +825,10 @@ public Bool GrVPutS(CDC *dc,I64 x,I64 y,U8 *_s) if (!_s) return FALSE; buf[1]=0; while (*buf=*_s++) { - if (*buf==CH_NEW_LINE) { + if (*buf=='\n') { y=y0; x+=FONT_WIDTH; - } else if (*buf==CH_TAB) + } else if (*buf=='\t') y=y0+CeilU64(y-y0+FONT_HEIGHT,8*FONT_HEIGHT); else { if (first) { @@ -1504,7 +1504,7 @@ gr_done: public I64 GrHLine(CDC *dc,I64 x1,I64 x2,I64 y,I64 z1=0,I64 z2=0) { //No transformation or pen width //returns cnt of pixels changed -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 dx,dz,z,result=0,i,j,d,dist; U8 *dst; CColorROPU32 c,c2,color=dc->color,bkcolor=dc->bkcolor,dither_colors; diff --git a/SparrowOS/Adam/Gr/GrCfg.CPP b/TempleOS/Adam/Gr/GrCfg.CPP similarity index 77% rename from SparrowOS/Adam/Gr/GrCfg.CPP rename to TempleOS/Adam/Gr/GrCfg.CPP index 21a292d..710eab5 100644 --- a/SparrowOS/Adam/Gr/GrCfg.CPP +++ b/TempleOS/Adam/Gr/GrCfg.CPP @@ -1,4 +1,4 @@ -//See $LK,"SYS_BIOS_GR_MODE","FF:D:/SparrowOS/OSMain/OSStart.CPP.Z,SYS_BIOS_GR_MODE:2"$ +//See $LK,"SYS_BIOS_GR_MODE","FF:D:/TempleOS/Kernel/KStart.CPP,SYS_BIOS_GR_MODE:2"$ //See $LK,"SysGrInit","MN:SysGrInit"$() //This allows constants to be used diff --git a/TempleOS/Adam/Gr/GrChar.CPP b/TempleOS/Adam/Gr/GrChar.CPP new file mode 100644 index 0000000..f272131 --- /dev/null +++ b/TempleOS/Adam/Gr/GrChar.CPP @@ -0,0 +1,106 @@ +#help_index "Graphics/Char;Char/Graphics" +public U0 PlotScreenStr(U8 *s,I64 attr,I64 x,I64 y) +{ + U8 ch; + attr<<=8; + while (ch=*s++) { + PlotScreenU8(ch+attr,x,y); + x++; + } +} + +public U0 PlotWinStr(CTask *task,U8 *s,I64 attr,I64 x,I64 y) +{ + U8 ch; + attr<<=8; + while (ch=*s++) { + PlotWinU8(task,ch+attr,x,y); + x++; + } +} + +public U0 PlotBorderStr(CTask *task,U8 *s,I64 attr,I64 x,I64 y) +{ + U8 ch; + attr<<=8; + while (ch=*s++) { + PlotBorderU8(task,ch+attr,x,y); + x++; + } +} + +public U0 DrawBorder(CTask *task,Bool solid,I64 l,I64 r,I64 t,I64 b,I64 attr,Bool clip_to_win) +{ + I64 i; + attr<<=8; + if (clip_to_win) { + if (solid) { + PlotWinU8(task,'É'+attr,l-1,t-1); + PlotWinU8(task,'»'+attr,r+1,t-1); + PlotWinU8(task,'È'+attr,l-1,b+1); + PlotWinU8(task,'¼'+attr,r+1,b+1); + for (i=l;i<=r;i++) { + PlotWinU8(task,'Í'+attr,i,t-1); + PlotWinU8(task,'Í'+attr,i,b+1); + } + for (i=t;i<=b;i++) { + PlotWinU8(task,'º'+attr,l-1,i); + PlotWinU8(task,'º'+attr,r+1,i); + } + } else { + PlotWinU8(task,'Ú'+attr,l-1,t-1); + PlotWinU8(task,'¿'+attr,r+1,t-1); + PlotWinU8(task,'À'+attr,l-1,b+1); + PlotWinU8(task,'Ù'+attr,r+1,b+1); + for (i=l;i<=r;i++) { + PlotWinU8(task,'Ä'+attr,i,t-1); + PlotWinU8(task,'Ä'+attr,i,b+1); + } + for (i=t;i<=b;i++) { + PlotWinU8(task,'³'+attr,l-1,i); + PlotWinU8(task,'³'+attr,r+1,i); + } + } + } else { + if (solid) { + PlotScreenU8('É'+attr,l-1,t-1); + PlotScreenU8('»'+attr,r+1,t-1); + PlotScreenU8('È'+attr,l-1,b+1); + PlotScreenU8('¼'+attr,r+1,b+1); + for (i=l;i<=r;i++) { + PlotScreenU8('Í'+attr,i,t-1); + PlotScreenU8('Í'+attr,i,b+1); + } + for (i=t;i<=b;i++) { + PlotScreenU8('º'+attr,l-1,i); + PlotScreenU8('º'+attr,r+1,i); + } + } else { + PlotScreenU8('Ú'+attr,l-1,t-1); + PlotScreenU8('¿'+attr,r+1,t-1); + PlotScreenU8('À'+attr,l-1,b+1); + PlotScreenU8('Ù'+attr,r+1,b+1); + for (i=l;i<=r;i++) { + PlotScreenU8('Ä'+attr,i,t-1); + PlotScreenU8('Ä'+attr,i,b+1); + } + for (i=t;i<=b;i++) { + PlotScreenU8('³'+attr,l-1,i); + PlotScreenU8('³'+attr,r+1,i); + } + } + } +} + +U0 DrawTaskBorder(CTask *task) +{ + PushFD; + Cli; + DrawBorder(task,task==sys_focus_task, + task->win_left,task->win_right, + task->win_top,task->win_bottom, + task->border_attr,FALSE); + PopFD; +} + +#help_index "Graphics" diff --git a/SparrowOS/Adam/Gr/GrComposites.CPP b/TempleOS/Adam/Gr/GrComposites.CPP similarity index 96% rename from SparrowOS/Adam/Gr/GrComposites.CPP rename to TempleOS/Adam/Gr/GrComposites.CPP index 30c314c..8258c77 100644 --- a/SparrowOS/Adam/Gr/GrComposites.CPP +++ b/TempleOS/Adam/Gr/GrComposites.CPP @@ -63,9 +63,9 @@ public Bool GrTextBox3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *s,I64 border=2) if (dc->flags & DCF_TRANSFORMATION) (*dc->transform)(dc,&x1,&y1,&z1); while (ch=*ptr++) { - if (ch==CH_TAB) + if (ch=='\t') w=CeilU64(w+FONT_WIDTH,FONT_WIDTH*8); - else if (ch==CH_NEW_LINE) { + else if (ch=='\n') { if (w>w_max) w_max=w; w=0; h+=FONT_HEIGHT; @@ -96,9 +96,9 @@ public Bool GrTextDiamond3(CDC *dc,I64 x1,I64 y1,I64 z1,U8 *_s,I64 border=2) ptr=s=StrNew(_s); while (ch=*ptr) { - if (ch==CH_CARRIAGE_RETURN||ch==CH_TAB) + if (ch==CH_CARRIAGE_RETURN||ch=='\t') *ptr=CH_SPACE; - if (ch==CH_NEW_LINE) { + if (ch=='\n') { *ptr=0; h+=FONT_HEIGHT; } @@ -160,7 +160,7 @@ public U0 DrawStdInputPtr(CDC *dc,I64 x,I64 y) public U0 (*fp_draw_input_ptr)(CDC *dc,I64 x,I64 y)=&DrawStdInputPtr; public U0 (*fp_draw_grab_input_ptr)(CDC *dc,I64 x,I64 y,Bool closed)=NULL; -public U8 *gr_empty_sprite=NULL; //Gets assigned $LK,"gr_empty_sprite","FI:::/SparrowOS/Adam/WallPaper.CPP.Z"$ +public U8 *gr_empty_sprite=NULL; //Gets assigned $LK,"gr_empty_sprite","FI:::/TempleOS/Adam/WallPaper.CPP"$ public U0 DrawWaitInputPtr(CDC *dc,I64 x,I64 y) { diff --git a/SparrowOS/Adam/Gr/GrDC.CPP b/TempleOS/Adam/Gr/GrDC.CPP similarity index 96% rename from SparrowOS/Adam/Gr/GrDC.CPP rename to TempleOS/Adam/Gr/GrDC.CPP index 7d468e6..4e1d328 100644 --- a/SparrowOS/Adam/Gr/GrDC.CPP +++ b/TempleOS/Adam/Gr/GrDC.CPP @@ -41,7 +41,7 @@ public CDC *DCAlias(CDC *dc=NULL,CTask *task=NULL) public CDC *DCNew(I64 type,I64 width,I64 height,CTask *task=NULL,Bool null_bitmap=FALSE) { //This internally only allows widths which are divisible by 8 -//Don't forget these $MA+A-X+PU,"sizeof(CDC)","Grep(\"sizeof(CDC)\",\"/SparrowOS/\"TEXT_FILE_MASK);View;"$. +//Don't forget these $MA+A-X+PU,"sizeof(CDC)","Grep(\"sizeof(CDC)\",\"/TempleOS/\"FILENAME_MASK_TXT);View;"$. CDC *result; if (!task) task=Fs; result=CAlloc(sizeof(CDC),task); @@ -232,7 +232,7 @@ public CDC *DCLoad(U8 *src,I64 *_size=NULL,CTask *task=NULL) } public I64 GRAWrite(U8 *filename,CDC *dc) -{ // SparrowOS GRA File +{ // TempleOS GRA File I64 size; U8 *st=DftExt(filename,"GRA.Z"), *src=DCSave(dc,&size); @@ -243,7 +243,7 @@ public I64 GRAWrite(U8 *filename,CDC *dc) } public CDC *GRARead(U8 *filename,CTask *task=NULL) -{ // SparrowOS GRA File +{ // TempleOS GRA File CDC *dc=NULL; U8 *st=DftExt(filename,"GRA.Z"), *src=FileRead(st); @@ -283,7 +283,7 @@ public CDC *DCCaptureScreen(CTask *task=NULL) } public I64 GRACaptureScreen(U8 *filename) -{ // SparrowOS GRA File +{ // TempleOS GRA File I64 size; CDC *dc=DCCaptureScreen; size=GRAWrite(filename,dc); @@ -294,7 +294,7 @@ public I64 GRACaptureScreen(U8 *filename) #help_index "Graphics;Graphics/DCs" public U0 DCExtentsInit(CDC *dc) -{//See $LK,"::/SparrowOS/Demo/Graphics/Extents.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Extents.CPP.Z"$ +{//See $LK-A,"::/TempleOS/Demo/Graphics/Extents.CPP"$ //You should clear the record flag yourself dc->flags|=DCF_RECORD_EXTENTS; dc->min_x=MAX_I64; diff --git a/SparrowOS/Adam/Gr/GrPrimatives.CPP b/TempleOS/Adam/Gr/GrPrimatives.CPP similarity index 96% rename from SparrowOS/Adam/Gr/GrPrimatives.CPP rename to TempleOS/Adam/Gr/GrPrimatives.CPP index c42f527..11f59b6 100644 --- a/SparrowOS/Adam/Gr/GrPrimatives.CPP +++ b/TempleOS/Adam/Gr/GrPrimatives.CPP @@ -504,8 +504,8 @@ public U0 Gr3BSpline(CDC *dc,CD3I32 *ctrl,I64 cnt,Bool closed=FALSE) BSpline3(dc,ctrl,cnt,&GrLinePlot,closed); } -public U0 GrLine3b(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,I64 step=1,I64 start=0) -{ //transformation but not pen width +public U0 GrLine3(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,I64 step=1,I64 start=0) +{ I64 _x1,_y1,_z1,_x2,_y2,_z2; Bool was_transform=FALSE,was_symmetry=FALSE; if (dc->flags & DCF_TRANSFORMATION) { @@ -520,49 +520,20 @@ public U0 GrLine3b(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,I64 step=1, _x2=x2; _y2=y2; _z2=z2; GrReflect(dc,&_x2,&_y2,&_z2); dc->flags&=~DCF_SYMMETRY; - if (step==1 && !start && !dc->brush && !dc->depth_buf) { //TODO: clip z for depth buf + if (step==1 && !start && !dc->brush && dc->pen_width<2 && !dc->depth_buf) { //TODO: clip z for depth buf if (DCClipLine(dc,&_x1,&_y1,&_x2,&_y2)) Line(dc,_x1,_y1,0,_x2,_y2,0,&GrLinePlot0,step,start); } else - Line(dc,_x1,_y1,_z1,_x2,_y2,_z2,&GrLinePlot,step,start); + Line(dc,_x1,_y1,_z1,_x2,_y2,_z2,&GrPlot3,step,start); was_symmetry=TRUE; if (dc->flags&DCF_JUST_MIRROR) goto gr_done; } - if (step==1 && !start && !dc->brush && !dc->depth_buf) { //TODO: clip z for depth buf + if (step==1 && !start && !dc->brush && dc->pen_width<2 && !dc->depth_buf) { //TODO: clip z for depth buf if (DCClipLine(dc,&x1,&y1,&x2,&y2)) Line(dc,x1,y1,0,x2,y2,0,&GrLinePlot0,step,start); } else - Line(dc,x1,y1,z1,x2,y2,z2,&GrLinePlot,step,start); -gr_done: - if (was_transform) - dc->flags|=DCF_TRANSFORMATION; - if (was_symmetry) - dc->flags|=DCF_SYMMETRY; -} - -public U0 GrLine3(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,I64 step=1,I64 start=0) -{ //transformation with pen width - I64 _x1,_y1,_z1,_x2,_y2,_z2; - Bool was_transform=FALSE,was_symmetry=FALSE; - if (dc->flags & DCF_TRANSFORMATION) { - (*dc->transform)(dc,&x1,&y1,&z1); - (*dc->transform)(dc,&x2,&y2,&z2); - dc->flags&=~DCF_TRANSFORMATION; - was_transform=TRUE; - } - if (dc->flags & DCF_SYMMETRY) { - _x1=x1; _y1=y1; _z1=z1; - GrReflect(dc,&_x1,&_y1,&_z1); - _x2=x2; _y2=y2; _z2=z2; - GrReflect(dc,&_x2,&_y2,&_z2); - dc->flags&=~DCF_SYMMETRY; - Line(dc,_x1,_y1,_z1,_x2,_y2,_z2,&GrPlot3,step,start); - was_symmetry=TRUE; - if (dc->flags&DCF_JUST_MIRROR) - goto gr_done; - } - Line(dc,x1,y1,z1,x2,y2,z2,&GrPlot3,step,start); + Line(dc,x1,y1,z1,x2,y2,z2,&GrPlot3,step,start); gr_done: if (was_transform) dc->flags|=DCF_TRANSFORMATION; @@ -795,7 +766,7 @@ public U0 GrRect3(CDC *dc,I64 x,I64 y,I64 z,I64 w,I64 h) public Bool GrBlot3(CDC *dc,I64 x1,I64 y1,I64 z1,CDC *img) { //Clipping and transformation -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. CColorROPU32 old_color=dc->color; I64 color,reg i,j,w=img->width,h=img->height, d1,dx1,dy1,dz1, @@ -1156,7 +1127,7 @@ gr_done: public I64 GrFillTriangle0(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. //Returns cnt of pixels changed I64 x1,x2,y,z1,z2,dx1,dy1,dz1,dx2,dy2,dz2,result=0,i,y_min,y_max; CTask *win_task; diff --git a/SparrowOS/Adam/Gr/GrScreen.CPP b/TempleOS/Adam/Gr/GrScreen.CPP similarity index 99% rename from SparrowOS/Adam/Gr/GrScreen.CPP rename to TempleOS/Adam/Gr/GrScreen.CPP index 00e8880..666a8a2 100644 --- a/SparrowOS/Adam/Gr/GrScreen.CPP +++ b/TempleOS/Adam/Gr/GrScreen.CPP @@ -140,7 +140,7 @@ BLACK,BROWN,RED,LTRED,YELLOW, GREEN,BLUE,PURPLE,LTGRAY,WHITE }; -DefineListLoad("ST_RAINBOW_10", +DefineLstLoad("ST_RAINBOW_10", "BLACK\0BROWN\0RED\0LTRED\0YELLOW\0" "GREEN\0BLUE\0PURPLE\0LTGRAY\0WHITE\0"); @@ -337,7 +337,7 @@ U0 GrSetUpTables() } } for (i=0;iidle_factor-0.1,0.2,0.8),1/win_actual_refresh); sys_task_being_screen_updated=NULL; - gr_refresh_time_stamps[gr_refresh_ts_ptr++&(GR_REFRESH_LOG_CNT-1)]=tNP; + gr_refresh_time_stamps[gr_refresh_ts_ptr++&(GR_REFRESH_LOG_CNT-1)]=tT; win_actual_refresh=(GR_REFRESH_LOG_CNT-1)/ (gr_refresh_time_stamps[(gr_refresh_ts_ptr-1)&(GR_REFRESH_LOG_CNT-1)]- gr_refresh_time_stamps[gr_refresh_ts_ptr&(GR_REFRESH_LOG_CNT-1)]); diff --git a/SparrowOS/Adam/Gr/GrSpritePlot.CPP b/TempleOS/Adam/Gr/GrSpritePlot.CPP similarity index 87% rename from SparrowOS/Adam/Gr/GrSpritePlot.CPP rename to TempleOS/Adam/Gr/GrSpritePlot.CPP index 52b3615..17f2dc9 100644 --- a/SparrowOS/Adam/Gr/GrSpritePlot.CPP +++ b/TempleOS/Adam/Gr/GrSpritePlot.CPP @@ -2,16 +2,16 @@ /* $LK,"CSprite","MN:CSprite"$s are stored as a sequence of var length operations with a 1-byte type leading -each operation. The types available are listed +each operation. The types available are lsted here, $LK,"GRST_PT","MN:GRST_PT"$. They are stored, one after another, in a chunk of memory terminated by a type $LK,"GRST_END","MN:GRST_END"$. -$LK,"CSpritePlot3","MN:CSpritePlot3"$() and $LK,"CSpriteVect","MN:CSpriteVect"$() shows how the +$LK,"SpritePlot3","MN:SpritePlot3"$() and $LK,"SpriteVect","MN:SpriteVect"$() shows how the unions are used. It's kind-of a mess using a union. -$LK,"CSpriteSize","MN:CSpriteSize"$() will return the size of a single -operation, while $LK,"CSpriteSize","MN:CSpriteSize"$() with an 's' will -return the size of an entire list. Look at +$LK,"SpriteSize","MN:SpriteSize"$() will return the size of a single +operation, while $LK,"SpriteSize","MN:SpriteSize"$() with an 's' will +return the size of an entire lst. Look at $LK,"gr_sprite_base_size","MN:gr_sprite_base_size"$. To get familiar, type on sprite in @@ -19,12 +19,12 @@ a document and select "Display as Text". It will show the raw data for each CSprite. This is how they are stored in files, as well. -See $MA+A-X+PU,"::/SparrowOS/Apps/GrModels","Cd(\"::/SparrowOS/Apps/GrModels\");Dir;View;\n"$ for an example of +See $MA+A-X+PU,"::/TempleOS/Apps/GrModels","Cd(\"::/TempleOS/Apps/GrModels\");Dir;View;\n"$ for an example of making CSprite by hand. Those are type $LK,"GRST_MESH","MN:GRST_MESH"$, one of the most complicated. */ -public U0 CSpritePlot3(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,Bool just_one=FALSE) +public U0 SpritePlot3(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,Bool just_one=FALSE) { CSprite *tempg=elems-offset(CSprite.start); I64 i,j,k,x1,y1,z1,x2,y2, @@ -280,7 +280,7 @@ public U0 CSpritePlot3(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,Bool just_one=FALSE) break; } if (just_one) break; - tempg(U8 *)+=CSpriteElemSize(tempg); + tempg(U8 *)+=SpriteElemSize(tempg); } MemCpy(&dc->sym,&old_sym,sizeof(CGrSym)); dc->color=old_color; @@ -289,15 +289,18 @@ public U0 CSpritePlot3(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,Bool just_one=FALSE) old_flags&(DCF_SYMMETRY|DCF_TRANSFORMATION); } -public U0 CSpritePlot3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems) +public U0 SpritePlot3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems) { - I64 old_x=dc->x,old_y=dc->y,old_z=dc->z; + I64 old_x=dc->x,old_y=dc->y,old_z=dc->z, + old_flags=dc->flags&DCF_TRANSFORMATION; dc->x=x; dc->y=y; dc->z=z; - CSpritePlot3(dc,0,0,0,elems); + dc->flags|=DCF_TRANSFORMATION; + SpritePlot3(dc,0,0,0,elems); dc->x=old_x; dc->y=old_y; dc->z=old_z; + dc->flags=dc->flags&~DCF_TRANSFORMATION|old_flags; } -public U0 CSpritePlotRotMat3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,I64 *m) +public U0 SpritePlotRotMat3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,I64 *m) { I64 *old_r=dc->r,old_m[16], old_flags=dc->flags&DCF_TRANSFORMATION; @@ -305,40 +308,40 @@ public U0 CSpritePlotRotMat3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,I64 *m) dc->flags|=DCF_TRANSFORMATION; GrAddTranslation(m,x,y,z); dc->r=GrMulMat(old_r,m); - CSpritePlot3(dc,0,0,0,elems); + SpritePlot3(dc,0,0,0,elems); Free(dc->r); dc->r=old_r; MemCpy(m,old_m,16*sizeof(I64)); dc->flags=dc->flags&~DCF_TRANSFORMATION|old_flags; } -public U0 CSpritePlotRotX3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 è=0) +public U0 SpritePlotRotX3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 è=0) { I64 *r=GrRotX(è); - CSpritePlotRotMat3b(dc,x,y,z,elems,r); + SpritePlotRotMat3b(dc,x,y,z,elems,r); Free(r); } -public U0 CSpritePlotRotY3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 ê=0) +public U0 SpritePlotRotY3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 ê=0) { I64 *r=GrRotY(ê); - CSpritePlotRotMat3b(dc,x,y,z,elems,r); + SpritePlotRotMat3b(dc,x,y,z,elems,r); Free(r); } -public U0 CSpritePlotRotZ3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 é=0) +public U0 SpritePlotRotZ3b(CDC *dc,I64 x,I64 y,I64 z,U8 *elems,F64 é=0) { I64 *r=GrRotZ(é); - CSpritePlotRotMat3b(dc,x,y,z,elems,r); + SpritePlotRotMat3b(dc,x,y,z,elems,r); Free(r); } -public U0 CSpriteExtents(U8 *elems,I64 *min_x=NULL,I64 *max_x=NULL, +public U0 SpriteExtents(U8 *elems,I64 *min_x=NULL,I64 *max_x=NULL, I64 *min_y=NULL,I64 *max_y=NULL) { //Ignores flood fills. CDC *dc=DCNew(DCT_COLOR8,MAX_I32,MAX_I32,Fs,TRUE); DCExtentsInit(dc); - CSpritePlot3(dc,MAX_I32/2,MAX_I32/2,MAX_I32/2,elems); + SpritePlot3(dc,MAX_I32/2,MAX_I32/2,MAX_I32/2,elems); if (dc->min_x<=dc->max_x) { dc->min_x-=MAX_I32/2; dc->max_x-=MAX_I32/2; @@ -354,24 +357,24 @@ public U0 CSpriteExtents(U8 *elems,I64 *min_x=NULL,I64 *max_x=NULL, DCDel(dc); } -public CDC *CSprite2DC(U8 *elems,I64 type=DCT_COLOR8) +public CDC *Sprite2DC(U8 *elems,I64 type=DCT_COLOR8) { CDC *result; I64 min_x,max_x,min_y,max_y; - CSpriteExtents(elems,&min_x,&max_x,&min_y,&max_y); + SpriteExtents(elems,&min_x,&max_x,&min_y,&max_y); result=DCNew(type,max_x-min_x+1,max_y-min_y+1); - CSpritePlot3(result,-min_x,-min_y,0,elems); + SpritePlot3(result,-min_x,-min_y,0,elems); return result; } -public U8 *CSpriteInterpolate(U8 *elems0,U8 *elems1,F64 t) +public U8 *SpriteInterpolate(U8 *elems0,U8 *elems1,F64 t) { //The two CSprite should be identical //except for points shifted around. //t ranges from 0.0 to 1.0 // -//See $LK,"::/SparrowOS/Demo/Graphics/Golf.CPP.Z","FI:::/SparrowOS/Demo/Graphics/Golf.CPP.Z"$ for an example. - I64 i=CSpriteSize(elems0), +//See $LK-A,"::/TempleOS/Demo/Graphics/Golf.CPP"$ for an example. + I64 i=SpriteSize(elems0), t1=gr_scale*t,t0=gr_scale-t1; I32 *ptr0,*ptr1,*ptrr; CD3I32 *p0,*p1,*pr; @@ -468,7 +471,7 @@ public U8 *CSpriteInterpolate(U8 *elems0,U8 *elems1,F64 t) } break; } - i=CSpriteElemSize(tempg0); + i=SpriteElemSize(tempg0); tempg0(U8 *)+=i; tempg1(U8 *)+=i; tempgr(U8 *)+=i; @@ -487,7 +490,7 @@ public CDocEntry *DocPutSprite(CDoc *doc=NULL,U8 *elems,U8 *txt=NULL) CDocBin *tempb; if (!doc && !(doc=DocCur)) return NULL; unlock=DocLock(doc); - size=CSpriteSize(elems); + size=SpriteSize(elems); tempb=CAlloc(sizeof(CDocBin),doc->mem_task); tempb->type=DOCBT_CSPRITE; tempb->size=size; diff --git a/SparrowOS/Adam/Gr/GrVectMap.CPP b/TempleOS/Adam/Gr/GrVectMap.CPP similarity index 89% rename from SparrowOS/Adam/Gr/GrVectMap.CPP rename to TempleOS/Adam/Gr/GrVectMap.CPP index d28bebc..3b91435 100644 --- a/SparrowOS/Adam/Gr/GrVectMap.CPP +++ b/TempleOS/Adam/Gr/GrVectMap.CPP @@ -5,7 +5,7 @@ representations of the map broken into small rectangles. The rectangles are encoded a bit-oriented structure. PolyLineStruct { -1 Bit : set is valid polyline, clear is end of polyline list +1 Bit : set is valid polyline, clear is end of polyline lst (R_BITS) : X-coordinate of polyline start (R_BITS) : Y-coordinate of polyline start (poly_line_cnt_bits): Number of polyline direction entries @@ -13,15 +13,15 @@ N*3 : N-long seq of 1 pixel directional movements } FloodFillStruct { -1 Bit : set is valid flood fill entry, clear is end of floodfill list +1 Bit : set is valid flood fill entry, clear is end of floodfill lst (1+R_BITS): X-coordinate*2 of flood fill (half pixels) (1+R_BITS): Y-coordinate*2 of flood fill (half pixels) } Rect { -1 Bit : set is valid rectangle entry, clear is end of rectangle list -PolyLineStructList -FloodFillStructList +1 Bit : set is valid rectangle entry, clear is end of rectangle lst +PolyLineStructLst +FloodFillStructLst } */ @@ -30,7 +30,7 @@ FloodFillStructList #define R_WIDTH (1<body; @@ -86,15 +86,15 @@ class CMPVMBlot }; -U0 MPGrVectMapBlotRect(CMPVMBlot *mp) +U0 VectMapBlotRectMP(CMPVMBlot *mp) { - GrVectMapBlotRect(mp->rect_dc,mp->vm,mp->bit,mp->scale); + VectMapBlotRect(mp->rect_dc,mp->vm,mp->bit,mp->scale); GrBlot(mp->dc,mp->xx,mp->yy,mp->rect_dc); mp->busy=FALSE; } -public U0 GrVectMapBlotMP(CDC *dc,I64 x,I64 y,CGrVectMap *vm,F64 scale=1.0,I64 _mp_cnt=0) +public U0 VectMapBlotMP(CDC *dc,I64 x,I64 y,CGrVectMap *vm,F64 scale=1.0,I64 _mp_cnt=0) { I64 i,i_lo,i_hi,j,j_lo,j_hi,k,cpu,pass, w=(vm->width +R_WIDTH-1)/R_WIDTH, @@ -160,10 +160,10 @@ public U0 GrVectMapBlotMP(CDC *dc,I64 x,I64 y,CGrVectMap *vm,F64 scale=1.0,I64 _ mp[cpu].yy=yy; mp[cpu].bit=vm->rect_start_bits[k]; if (!cpu) - MPGrVectMapBlotRect(mp); + VectMapBlotRectMP(mp); else { mp[cpu].busy=TRUE; - MPJob(&MPGrVectMapBlotRect,&mp[cpu],cpu); + MPJob(&VectMapBlotRectMP,&mp[cpu],cpu); } k+=w; yy+=R_HEIGHT*scale; @@ -190,7 +190,7 @@ Bool IsSolidSquare(CDC *dc,I64 x,I64 y,I64 edge,CColorROPU32 color) return TRUE; } -I64 GrVectizeRect(CDC *dc,I64 _x,I64 _y,CGrVectMap *vm,I64 _bit, +I64 VectizeRect(CDC *dc,I64 _x,I64 _y,CGrVectMap *vm,I64 _bit, I64 poly_line_cnt_bits,I64 *_max_poly_line_cnt_bits) { //Returns number of bits to represent rect CDC *b_desired =DCExtract(dc,_x-R_BORDER,_y-R_BORDER,_x+R_WIDTH+R_BORDER*2-1,_y+R_BORDER*2+R_HEIGHT-1), @@ -222,8 +222,8 @@ I64 GrVectizeRect(CDC *dc,I64 _x,I64 _y,CGrVectMap *vm,I64 _bit, if (!cnt || cnt==R_WIDTH*R_HEIGHT) { //Rect is all ON or OFF - Btr(body,bit++); //End of poly-line list - Btr(body,bit++); //End of flood-fill list + Btr(body,bit++); //End of poly-line lst + Btr(body,bit++); //End of flood-fill lst } else { for (y=0;ycolor=rect_dft; GrLineRect4(b_desired,0,0,R_WIDTH+2*R_BORDER-1,R_HEIGHT+2*R_BORDER-1); - Btr(body,bit); //Temp end of flood-fill list + Btr(body,bit); //Temp end of flood-fill lst for (step_bits=2;step_bits>=1;step_bits-=1) { step=1<color=not_rect_dft; GrLineRect4(b_actual,0,0,R_WIDTH+2*R_BORDER-1,R_HEIGHT+2*R_BORDER-1); @@ -346,7 +346,7 @@ I64 GrVectizeRect(CDC *dc,I64 _x,I64 _y,CGrVectMap *vm,I64 _bit, for (y=R_BORDER;y>step_bits,y>>step_bits)==rect_dft) { - Bts(body,bit++); //Show not end of flood-fill list + Bts(body,bit++); //Show not end of flood-fill lst yy=y; xx=x; for (k=0;k<4;k++) { yy2=yy; @@ -377,9 +377,9 @@ I64 GrVectizeRect(CDC *dc,I64 _x,I64 _y,CGrVectMap *vm,I64 _bit, bit+=R_BITS+1; } DCDel(b_actual); - Btr(body,bit); //Temp end of flood-fill list + Btr(body,bit); //Temp end of flood-fill lst } - bit++; //End of flood-fill list + bit++; //End of flood-fill lst } DCDel(b_desired); @@ -416,7 +416,7 @@ public CGrVectMap *DC2VectMap(CDC *dc,CTask *mem_task=NULL,I64 *_size=NULL) tempv.rect_cnt=rect_cnt; tempv.r_bits=R_BITS; tempv.poly_line_cnt_bits=poly_line_cnt_bits; - GrVectizeRect(dc,R_BORDER+j*R_WIDTH,R_BORDER+i*R_HEIGHT,&tempv,0,poly_line_cnt_bits,&max_poly_line_cnt_bits); + VectizeRect(dc,R_BORDER+j*R_WIDTH,R_BORDER+i*R_HEIGHT,&tempv,0,poly_line_cnt_bits,&max_poly_line_cnt_bits); } //Pass 2: Get cnt @@ -432,7 +432,7 @@ public CGrVectMap *DC2VectMap(CDC *dc,CTask *mem_task=NULL,I64 *_size=NULL) tempv.rect_cnt=rect_cnt; tempv.r_bits=R_BITS; tempv.poly_line_cnt_bits=poly_line_cnt_bits; - cnt+=GrVectizeRect(dc,R_BORDER+j*R_WIDTH,R_BORDER+i*R_HEIGHT,&tempv,0,poly_line_cnt_bits,NULL); + cnt+=VectizeRect(dc,R_BORDER+j*R_WIDTH,R_BORDER+i*R_HEIGHT,&tempv,0,poly_line_cnt_bits,NULL); } Free(body); @@ -452,7 +452,7 @@ public CGrVectMap *DC2VectMap(CDC *dc,CTask *mem_task=NULL,I64 *_size=NULL) for (i=0;irect_start_bits); Free(vm->body); Free(vm); } -U32 *GrVectMapRectStartBits(CGrVectMap *vm,CTask *mem_task=NULL) +U32 *VectMapRectStartBits(CGrVectMap *vm,CTask *mem_task=NULL) { I64 k=0,bit=0; U8 *body=vm->body; diff --git a/SparrowOS/Adam/Gr/MathGr.CPP b/TempleOS/Adam/Gr/MathGr.CPP similarity index 93% rename from SparrowOS/Adam/Gr/MathGr.CPP rename to TempleOS/Adam/Gr/MathGr.CPP index e98d22a..0162ac3 100644 --- a/SparrowOS/Adam/Gr/MathGr.CPP +++ b/TempleOS/Adam/Gr/MathGr.CPP @@ -11,7 +11,7 @@ public Bool Line(U8 *aux_data, Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z), I64 step=1,I64 start=0) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 i,j,d,dx=x2-x1,dy=y2-y1,dz=z2-z1,_x,_y,_z, adx=AbsI64(dx),ady=AbsI64(dy),adz=AbsI64(dz); Bool first=TRUE; @@ -88,7 +88,7 @@ public Bool Rect(U8 *aux_data, I64 x3,I64 y3,I64 z3, Bool (*fp_plot)(U8 *aux,I64 x,I64 y,I64 z)) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 i,j, d1,dx1=x2-x1,dy1=y2-y1,dz1=z2-z1, d2,dx2=x3-x1,dy2=y3-y1,dz2=z3-z1, @@ -137,13 +137,13 @@ public Bool Rect(U8 *aux_data, } #help_index "Graphics/Math/3D Transformation" -#help_file "::/SparrowOS/Doc/Transform" -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +#help_file "::/TempleOS/Doc/Transform" +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 gr_scale=MAX_U32+1; public U0 GrRot(I64 r[4][4],I64 *_x,I64 *_y,I64 *_z) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 x1,y1,z1,xx=*_x,yy=*_y,zz=*_z; x1=(r[0][0]*xx+r[0][1]*yy+r[0][2]*zz+r[0][3])>>32; y1=(r[1][0]*xx+r[1][1]*yy+r[1][2]*zz+r[1][3])>>32; @@ -153,7 +153,7 @@ public U0 GrRot(I64 r[4][4],I64 *_x,I64 *_y,I64 *_z) public U0 GrTransform(CDC *dc,I64 *_x,I64 *_y,I64 *_z) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. GrRot(dc->r,_x,_y,_z); *_x+=dc->x; *_y+=dc->y; @@ -162,7 +162,7 @@ public U0 GrTransform(CDC *dc,I64 *_x,I64 *_y,I64 *_z) public I64 *GrRotX(F64 è,CTask *mem_task=NULL) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. F64 my_cos=Cos(è)*gr_scale, my_sin=Sin(è)*gr_scale; I64 *r=CAlloc(sizeof(I64)*16,mem_task); @@ -178,7 +178,7 @@ public I64 *GrRotX(F64 public I64 *GrRotY(F64 ê,CTask *mem_task=NULL) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. F64 my_cos=Cos(ê)*gr_scale, my_sin=Sin(ê)*gr_scale; I64 *r=CAlloc(sizeof(I64)*16,mem_task); @@ -194,7 +194,7 @@ public I64 *GrRotY(F64 public I64 *GrRotZ(F64 é,CTask *mem_task=NULL) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. F64 my_cos=Cos(é)*gr_scale, my_sin=Sin(é)*gr_scale; I64 *r=CAlloc(sizeof(I64)*16,mem_task); @@ -210,7 +210,7 @@ public I64 *GrRotZ(F64 public I64 *GrScaleMat(I64 *m1,F64 s,CTask *mem_task=NULL) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 i,*r=CAlloc(sizeof(I64)*16,mem_task); for (i=0;i<16;i++) r[i]=m1[i]*s; @@ -219,7 +219,7 @@ public I64 *GrScaleMat(I64 *m1,F64 s,CTask *mem_task=NULL) public I64 *GrMulMat(I64 *m1,I64 *m2,CTask *mem_task=NULL) { - //This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. + //This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. //Conceptually, the transform m1 is applied after m2 I64 i,j,k,*r=CAlloc(sizeof(I64)*16,mem_task); F64 d; @@ -238,7 +238,7 @@ public I64 *GrMulMat(I64 *m1,I64 *m2,CTask *mem_task=NULL) public I64 *GrRotXEqu(I64 *m1,F64 è) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. F64 my_cos=Cos(è)*gr_scale, my_sin=Sin(è)*gr_scale; I64 r[16],*r2; @@ -258,7 +258,7 @@ public I64 *GrRotXEqu(I64 *m1,F64 public I64 *GrRotYEqu(I64 *m1,F64 ê) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. F64 my_cos=Cos(ê)*gr_scale, my_sin=Sin(ê)*gr_scale; I64 r[16],*r2; @@ -278,7 +278,7 @@ public I64 *GrRotYEqu(I64 *m1,F64 public I64 *GrRotZEqu(I64 *m1,F64 é) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. F64 my_cos=Cos(é)*gr_scale, my_sin=Sin(é)*gr_scale; I64 r[16],*r2; @@ -306,7 +306,7 @@ public I64 *GrScaleMatEqu(I64 *m1,F64 s) public U0 GrSetRotMat(CDC *dc,I64 r[4][4]) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. // (1.0/Sqrt(3))*65536=37837.22 I64 xx=37838,yy=37837,zz=37837; dc->r=r; @@ -330,7 +330,7 @@ public U0 GrScalePenWidth(CDC *dc) public I64 *GrIdent(CTask *mem_task=NULL) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 *r=CAlloc(sizeof(I64)*16,mem_task); r[0] .i32[1]=1; r[5] .i32[1]=1; @@ -341,7 +341,7 @@ public I64 *GrIdent(CTask *mem_task=NULL) public I64 *GrIdentEqu(I64 r[4][4]) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. MemSet(r,0,sizeof(I64)*16); r[0][0].i32[1]=1; r[1][1].i32[1]=1; @@ -352,7 +352,7 @@ public I64 *GrIdentEqu(I64 r[4][4]) public I64 *GrSetTranslation(I64 r[4][4],I64 x,I64 y,I64 z) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. r[0][3]=x<<32; r[1][3]=y<<32; r[2][3]=z<<32; @@ -362,7 +362,7 @@ public I64 *GrSetTranslation(I64 r[4][4],I64 x,I64 y,I64 z) public I64 *GrAddTranslation(I64 r[4][4],I64 x,I64 y,I64 z) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. r[0][3]+=x<<32; r[1][3]+=y<<32; r[2][3]+=z<<32; @@ -429,7 +429,7 @@ public Bool GrSetSymmetry3(CDC *dc,I64 x1,I64 y1,I64 z1,I64 x2,I64 y2,I64 z2,I64 public U0 GrReflect(CDC *dc,I64 *_x,I64 *_y,I64 *_z) { -//This uses $LK,"fixed-point","FI:::/SparrowOS/Demo/Lectures/FixedPoint.CPP.Z"$. +//This uses $LK,"fixed-point","FI:::/TempleOS/Demo/Lectures/FixedPoint.CPP"$. I64 x=*_x<<32,y=*_y<<32,z=*_z<<32, xx=*_x-dc->sym.sx,yy=*_y-dc->sym.sy,zz=*_z-dc->sym.sz, d=(xx*dc->sym.snx+yy*dc->sym.sny+zz*dc->sym.snz)>>16, @@ -493,7 +493,7 @@ public U0 GrLighting(CDC *dc,CD3I32 *p1,CD3I32 *p2,CD3I32 *p3,CColorROPU32 color //gives an illumination number. //65536*65536>>16=65536 -//SparrowOS will generate a random U16 +//TempleOS will generate a random U16 //and compare to dither_probability and //will pick from two colors. //Probability dithering does not work with pen_width>1 at this time. diff --git a/SparrowOS/Adam/Grep.CPP b/TempleOS/Adam/Grep.CPP similarity index 89% rename from SparrowOS/Adam/Grep.CPP rename to TempleOS/Adam/Grep.CPP index 9737c75..d25accd 100644 --- a/SparrowOS/Adam/Grep.CPP +++ b/TempleOS/Adam/Grep.CPP @@ -30,11 +30,9 @@ I64 GrepFile(U8 *pattern,U8 *name,I64 *_fuf_flags,U8 *replace_text) { Bool first_on_line,write_this_file=FALSE,cont=!Bt(_fuf_flags,FUf_CANCEL); U8 *src,*dst,*dst2,*name_buf=NULL; - I64 ss_flags; + I64 i,j,plen,rlen,dlen,cnt=0,old_flags,ss_flags; CDoc *cur_l,*doc=DocRead(name,DOCF_PLAIN_TEXT_WITH_TABS|DOCF_NO_CURSOR); CDocEntry *doc_e; - I64 i,j,plen,rlen,dlen; - I64 cnt=0,old_flags; ss_flags=Bt(_fuf_flags,FUf_IGNORE) ? SRF_IGNORE_CASE :0; if (Bt(_fuf_flags,FUf_WHOLE_LABELS)) @@ -142,7 +140,7 @@ I64 GrepFile(U8 *pattern,U8 *name,I64 *_fuf_flags,U8 *replace_text) return cnt; } -I64 GrepList(U8 *pattern,CDirEntry *tempm1,I64 *_fuf_flags,U8 *replace_text) +I64 GrepLst(U8 *pattern,CDirEntry *tempm1,I64 *_fuf_flags,U8 *replace_text) { I64 cnt=0; CDirEntry *tempm2; @@ -152,7 +150,7 @@ I64 GrepList(U8 *pattern,CDirEntry *tempm1,I64 *_fuf_flags,U8 *replace_text) if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) { "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - cnt+=GrepList(pattern,tempm1->sub,_fuf_flags,replace_text); + cnt+=GrepLst(pattern,tempm1->sub,_fuf_flags,replace_text); } } else cnt+=GrepFile(pattern,tempm1->full_name,_fuf_flags,replace_text); @@ -162,7 +160,7 @@ I64 GrepList(U8 *pattern,CDirEntry *tempm1,I64 *_fuf_flags,U8 *replace_text) return cnt; } -public I64 Grep(U8 *pattern,U8 *files_find_mask=TEXT_FILE_MASK,U8 *fu_flags=NULL,U8 *replace_text=NULL) +public I64 Grep(U8 *pattern,U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL,U8 *replace_text=NULL) /* This does not do regular expressions--my bad. Anyway, it's good for searching and replacing. @@ -180,14 +178,19 @@ Let's say it stands for global replace ;-) { I64 cnt=0,fuf_flags=0; + CDirEntry *tempm; GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+i"); //Set dft flags GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (fuf_flags&~(FUG_FILES_FIND|FUF_IGNORE|FUF_WHOLE_LABELS|FUF_WHOLE_LABELS_FRONT|FUF_WHOLE_LABELS_BACK)) + throw(EXCEPT_FUF,1); LBEqu(&fuf_flags,FUf_REPLACE,replace_text); - cnt+=GrepList(pattern,FilesFind(files_find_mask,fuf_flags),&fuf_flags,replace_text); + tempm=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND); + fuf_flags&=FUF_REPLACE|FUF_IGNORE|FUF_WHOLE_LABELS|FUF_WHOLE_LABELS_FRONT|FUF_WHOLE_LABELS_BACK; + cnt+=GrepLst(pattern,tempm,&fuf_flags,replace_text); return cnt; } -public I64 FileOcc(U8 *pattern,U8 *files_find_mask=TEXT_FILE_MASK,U8 *fu_flags="+r+i+l") +public I64 FileOcc(U8 *pattern,U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags="+r+i+l") {/* "+r"=recurse "+i"=ignore case @@ -218,7 +221,7 @@ I64 GrepWiz() CGrep *g=CAlloc(sizeof(CGrep)); I64 result=0; g->recurse=TRUE; - StrCpy(g->filemask,TEXT_FILE_MASK); + StrCpy(g->filemask,FILENAME_MASK_TXT); if (doc=DocCur) { StrCpy(g->find_text,doc->find_replace->find_text); StrCpy(g->replace_text,doc->find_replace->replace_text); diff --git a/SparrowOS/Adam/Hash2a.CPP b/TempleOS/Adam/Hash2a.CPP similarity index 95% rename from SparrowOS/Adam/Hash2a.CPP rename to TempleOS/Adam/Hash2a.CPP index 86385c6..b369776 100644 --- a/SparrowOS/Adam/Hash2a.CPP +++ b/TempleOS/Adam/Hash2a.CPP @@ -140,7 +140,7 @@ public U0 HashRep(CHashTable *h=NULL, CHashTable *tempht; CHashSrcSym *temph; CHashGeneric *ptr; - CHashRep *list; + CHashRep *lst; I64 cnt,i,j,k,size,f=0, dbg_bin_num,indent_bin_num; U8 buf[512],*buf4,*last_index=StrNew(""),*cur_index; @@ -152,6 +152,8 @@ public U0 HashRep(CHashTable *h=NULL, GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),"+r+p"); GetFFlags(&f,Define("ST_FILE_UTIL_FLAGS"),flags); + if (f&~(FUF_RECURSE|FUF_PUBLIC|FUF_MAP)) + throw(EXCEPT_FUF,2); recurse=Bt(&f,FUf_RECURSE); publics=Bt(&f,FUf_PUBLIC); map =Bt(&f,FUf_MAP); @@ -190,7 +192,7 @@ public U0 HashRep(CHashTable *h=NULL, } if (!cnt) goto end_hash; - list=CAlloc(cnt*sizeof(CHashRep)); + lst=CAlloc(cnt*sizeof(CHashRep)); j=0; tempht=h; while (tempht) { @@ -200,14 +202,14 @@ public U0 HashRep(CHashTable *h=NULL, temph->type & mask && (temph->type & HTF_PUBLIC || !publics)) if (!index) - list[j++].h=temph; + lst[j++].h=temph; else if (temph->type&HTG_SRC_SYM && (cur_index=temph->index)) if (k=HelpIndexCnt(cur_index,index)) { while (k--) { - list[j].index=HelpIndexStr(&cur_index,index); - list[j++].h=temph; + lst[j].index=HelpIndexStr(&cur_index,index); + lst[j++].h=temph; } } temph=temph->next_added; @@ -220,17 +222,17 @@ public U0 HashRep(CHashTable *h=NULL, Preempt(old_preempt); if (map) - QSort(list,cnt,sizeof(CHashRep),&HashEntriesCompare2); + QSort(lst,cnt,sizeof(CHashRep),&HashEntriesCompare2); else if (index) - QSort(list,cnt,sizeof(CHashRep),&HashEntriesCompare3); + QSort(lst,cnt,sizeof(CHashRep),&HashEntriesCompare3); else - QSort(list,cnt,sizeof(CHashRep),&HashEntriesCompare); + QSort(lst,cnt,sizeof(CHashRep),&HashEntriesCompare); for (i=0;itype&HTG_SRC_SYM && ptr(CHashSrcSym *)->src_link) { buf4=StrNew(ptr(CHashSrcSym *)->src_link); - if (mapfile_drv && StrLen(buf4)>3) + if (mapfile_drv && StrLen(buf4)>4 && buf[1]==':' && buf4[4]==':') buf4[3]=mapfile_drv; dbg=indent=NULL; if (outname && doc && ptr->type & HTT_FUN) { @@ -364,9 +366,9 @@ public U0 HashRep(CHashTable *h=NULL, else "" buf; } - Free(list[i].index); + Free(lst[i].index); } - Free(list); + Free(lst); end_hash: Preempt(old_preempt); @@ -452,7 +454,7 @@ public I64 HashDepthRep(CHashTable *tempht=NULL) } #help_index "Help System;Training" -#help_file "::/SparrowOS/Doc/HelpSystem" +#help_file "::/TempleOS/Doc/HelpSystem" public U0 DocHelpIndex(CDoc *doc,U8 *index) { diff --git a/SparrowOS/Adam/HeapLog.CPP b/TempleOS/Adam/HeapLog.CPP similarity index 99% rename from SparrowOS/Adam/HeapLog.CPP rename to TempleOS/Adam/HeapLog.CPP index 9da955c..c8b7d7c 100644 --- a/SparrowOS/Adam/HeapLog.CPP +++ b/TempleOS/Adam/HeapLog.CPP @@ -1,4 +1,4 @@ -#help_index "Debugging" +#help_index "Debugging/Heap" class CHeapLog { diff --git a/SparrowOS/Adam/LineCnt.CPP b/TempleOS/Adam/LineCnt.CPP similarity index 89% rename from SparrowOS/Adam/LineCnt.CPP rename to TempleOS/Adam/LineCnt.CPP index 9ac9133..294471c 100644 --- a/SparrowOS/Adam/LineCnt.CPP +++ b/TempleOS/Adam/LineCnt.CPP @@ -9,7 +9,7 @@ I64 LineCntRepFiles(CDirEntry *tempm) if (tempm->attr&_ATTR_DIR) i=LineCntRepFiles(tempm->sub); else { - if (IsSrcFile(tempm->name)) { + if (FilesFindMatch(FILENAME_MASK_SRC,tempm->name)) { doc=DocRead(tempm->full_name); if (doc->root.next!=doc) i=doc->root.last->y+2; @@ -31,7 +31,7 @@ U0 PutLineCntFiles(CDoc *doc,CDirEntry *tempm) PutLineCntFiles(doc,tempm->sub); DocPutS(doc,"$$ID,-2$$"); } else { - if (IsSrcFile(tempm->name)) { + if (FilesFindMatch(FILENAME_MASK_SRC,tempm->name)) { DocPrintF(doc,"%8,d ",tempm->user_data); DocPrintF(doc,"$$LK,\"%s\",\"FI:%s\"$$\n", tempm->name,tempm->full_name); @@ -41,7 +41,7 @@ U0 PutLineCntFiles(CDoc *doc,CDirEntry *tempm) } } -public I64 LineCntRep(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL) +public I64 LineCntRep(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL) { I64 fuf_flags=0,result=0; CDoc *doc=DocNew; @@ -53,7 +53,7 @@ public I64 LineCntRep(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL) DocPrintF(doc,"%8,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); PutLineCntFiles(doc,tempm1); DocPutS(doc,"$$ID,-2$$"); - CDirListDel(tempm1); + CDirLstDel(tempm1); } DocInsDoc(DocCur,doc); DocDel(doc); @@ -91,7 +91,7 @@ U0 PutTreeSizeFiles(CDoc *doc,CDirEntry *tempm) } } -public I64 TreeSizeRep(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL) +public I64 TreeSizeRep(U8 *files_find_mask="/TempleOS/*",U8 *fu_flags=NULL) { I64 fuf_flags=0,result=0; CDoc *doc=DocNew; @@ -103,7 +103,7 @@ public I64 TreeSizeRep(U8 *files_find_mask="/SparrowOS/*",U8 *fu_flags=NULL) DocPrintF(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",result,files_find_mask); PutTreeSizeFiles(doc,tempm1); DocPutS(doc,"$$ID,-2$$"); - CDirListDel(tempm1); + CDirLstDel(tempm1); } DocInsDoc(DocCur,doc); DocDel(doc); diff --git a/SparrowOS/Adam/LinkChk.CPP b/TempleOS/Adam/LinkChk.CPP similarity index 78% rename from SparrowOS/Adam/LinkChk.CPP rename to TempleOS/Adam/LinkChk.CPP index aefccd2..d28c6f1 100644 --- a/SparrowOS/Adam/LinkChk.CPP +++ b/TempleOS/Adam/LinkChk.CPP @@ -12,11 +12,7 @@ I64 LinkChkDoc(CDoc *doc,I64 *_fuf_flags) LBts(_fuf_flags,FUf_CANCEL); break; } - if (doc_e->type_u8==DOCT_LINK) { - if (doc_e->flags1 & DOCEF1_AUX_STR) - st=doc_e->aux_str; - else - st=doc_e->tag; + if (st=DocEntryLink(doc,doc_e)) { DocLock(old_doc); DocQueRem(old_doc); DocQueIns(doc,Fs->last_doc); @@ -29,6 +25,7 @@ I64 LinkChkDoc(CDoc *doc,I64 *_fuf_flags) "$$FG,RED$$ %04d:%s\n$$FG$$",doc_e->y,st; result++; } + Free(st); } else if (doc_e->type_u8==DOCT_ERROR) { PutFileLink(doc->filename.name,doc_e->y); "$$FG,RED$$ Doc Error\n$$FG$$"; @@ -48,7 +45,7 @@ I64 LinkChkFile(U8 *filename,I64 *_fuf_flags) return result; } -I64 LinkChkList(CDirEntry *tempm1,I64 *_fuf_flags) +I64 LinkChkLst(CDirEntry *tempm1,I64 *_fuf_flags) { CDirEntry *tempm2; I64 result=0; @@ -57,7 +54,7 @@ I64 LinkChkList(CDirEntry *tempm1,I64 *_fuf_flags) if (tempm1->attr & _ATTR_DIR) { if (tempm1->sub) { "%S %s\n","ST_SCANNING_DIR",tempm1->full_name; - result+=LinkChkList(tempm1->sub,_fuf_flags); + result+=LinkChkLst(tempm1->sub,_fuf_flags); } } else result+=LinkChkFile(tempm1->full_name,_fuf_flags); @@ -67,12 +64,12 @@ I64 LinkChkList(CDirEntry *tempm1,I64 *_fuf_flags) return result; } -public I64 LinkChk(U8 *files_find_mask=TEXT_FILE_MASK,U8 *fu_flags=NULL) +public I64 LinkChk(U8 *files_find_mask=FILENAME_MASK_TXT,U8 *fu_flags=NULL) //Checks for broken file links. { I64 fuf_flags=0; - GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+t"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - return LinkChkList(FilesFind(files_find_mask,fuf_flags),&fuf_flags); + return LinkChkLst(FilesFind(files_find_mask,fuf_flags),&fuf_flags); } #help_index "" diff --git a/SparrowOS/Adam/LogIn.CPP b/TempleOS/Adam/LogIn.CPP similarity index 80% rename from SparrowOS/Adam/LogIn.CPP rename to TempleOS/Adam/LogIn.CPP index 86f7785..ff7ef0e 100644 --- a/SparrowOS/Adam/LogIn.CPP +++ b/TempleOS/Adam/LogIn.CPP @@ -1,18 +1,18 @@ #help_index "Task/Login" -//This is temporary until defined in $LK,"HOME/Adam3fSys.CPP.Z","FI:HOME/Adam3fSys.CPP.Z"$. +//This is temporary until defined in $LK-A,"HOME/Adam3fSys.CPP"$. U0 UserStartUp() { //Run each time a user a spawned UseTermDoc; DocCurAttr(WHITE<<4+BLUE); - Type("::/SparrowOS/Doc/Start.TXT.Z"); + Type("::/TempleOS/Doc/Start.TXT"); LBts(&Fs->display_flags,DISPLAYf_SHOW); WinZBufUpdate; if (!IsSysDeterministic) Preempt(ON); } -//This is temporary until defined in $LK,"HOME/Adam3fSys.CPP.Z","FI:HOME/Adam3fSys.CPP.Z"$. +//This is temporary until defined in $LK-A,"HOME/Adam3fSys.CPP"$. U0 ServantStartUp() { //Run each time a servant task is spawned. UseTermDoc; @@ -26,15 +26,15 @@ U8 *PopUpSysAcctGet() { U8 *result,*st; CDoc *doc=DocNew; - CDirEntry *tempm1=FilesFind("/SparrowOS/Accts/*",1<",1,"::/SparrowOS/Demo/Graphics/Logo.CPP.Z,1"$,"$$SP+SIF,\"\",%d$$"); + DocPutSprite(doc,$IB+BP,"<1>",1,"::/TempleOS/Demo/Graphics/Logo.CPP,1"$,"$$SP+SIF,\"\",%d$$"); DocPutS(doc,"$$CM+LX,0,14$$Select Account.\nCursor down and press .\n"); while (tempm) { if (*tempm->name!='.') { st=tempm->full_name; - if (!StrNCmp(st+2,"/SparrowOS/Accts/",10)) + if (!StrNCmp(st+2,"/TempleOS/Accts/",10)) st+=12; DocPrintF(doc,"$$CM+LX,2,3$$$$BT,\"%s\",%d$$",st,tempm); } @@ -47,14 +47,14 @@ U8 *PopUpSysAcctGet() DocDel(doc); result=AStrNew(tempm->full_name); - CDirListDel(tempm1); + CDirLstDel(tempm1); return result; } U0 SysLogin() { U8 *st; - if (!FileFind(sys_acct)||!StrCmp(sys_acct+2,"/SparrowOS/Accts")) { + if (!FileFind(sys_acct)||!StrCmp(sys_acct+2,"/TempleOS/Accts")) { st=sys_acct; sys_acct=PopUpSysAcctGet; Free(st); @@ -137,7 +137,7 @@ U0 AcctOneTimePopUp(I64 flag_num,U8 *msg) DocPutS(doc,"$$CM+CX,0,4$$$$BT,\"OKAY\",1$$\n"); if (PopUpMenu(doc)==1 && doc_e->flags1&DOCEF1_CHECKED_COLLAPSED) { LBts(sys_msg_flags,flag_num); - AcctRegWriteBranch("Adam/SparrowOS/SysMsgFlags", + AcctRegWriteBranch("Adam/TempleOS/SysMsgFlags", "sys_msg_flags[0]=0x%X;\n", sys_msg_flags[0]); } @@ -149,9 +149,9 @@ U0 RegistryInit() { U8 buf[136]; Bool existed=FileFind(ACCT_REGISTRY_FILENAME),version_present; - AcctRegSetDftEntry("Adam/SparrowOS/SysMsgFlags","sys_msg_flags[0]=0;\n",TRUE); + AcctRegSetDftEntry("Adam/TempleOS/SysMsgFlags","sys_msg_flags[0]=0;\n",TRUE); SPrintF(buf,"registry_version=%4.3f;\n",os_version); - version_present=AcctRegSetDftEntry("Adam/SparrowOS/SysRegVer",buf,TRUE); + version_present=AcctRegSetDftEntry("Adam/TempleOS/SysRegVer",buf,TRUE); AcctRegExecuteBranch("Adam"); //Convert old registries @@ -159,8 +159,8 @@ U0 RegistryInit() registry_version=5.10; if (registry_version!=os_version) { if (registry_version<5.101) - AcctRegWriteBranch("SparrowOS",""); - AcctRegWriteBranch("Adam/SparrowOS/SysRegVer",buf); + AcctRegWriteBranch("TempleOS",""); + AcctRegWriteBranch("Adam/TempleOS/SysRegVer",buf); AcctRegExecuteBranch("Adam"); } } diff --git a/SparrowOS/Adam/Math2a.CPP b/TempleOS/Adam/Math2a.CPP similarity index 100% rename from SparrowOS/Adam/Math2a.CPP rename to TempleOS/Adam/Math2a.CPP diff --git a/SparrowOS/Adam/MathODE.CPP b/TempleOS/Adam/MathODE.CPP similarity index 96% rename from SparrowOS/Adam/MathODE.CPP rename to TempleOS/Adam/MathODE.CPP index 46ea73e..64ca203 100644 --- a/SparrowOS/Adam/MathODE.CPP +++ b/TempleOS/Adam/MathODE.CPP @@ -1,7 +1,7 @@ #help_index "Math/CMathODE;CMathODE" -#help_file "::/SparrowOS/Doc/ODE" +#help_file "::/TempleOS/Doc/ODE" -//See $LK,"::/SparrowOS/Doc/Acknowledgements.TXT.Z","FI:::/SparrowOS/Doc/Acknowledgements.TXT.Z"$ (5). +//See $LK-A,"::/TempleOS/Doc/Acknowledgements.TXT"$ (5). F64 LowPass1(F64 a,F64 y0,F64 y,F64 dt=1.0) { //First order low pass filter @@ -512,7 +512,7 @@ F64 ode_allocated_factor=0.75; U0 ODEsUpdate(CTask *task) { /* -This routine is called by the $LK,"window mgr","FF:::/SparrowOS/Adam/Gr/GrScreen.CPP.Z,ODEsUpdate"$ on a continuous +This routine is called by the $LK,"window mgr","FF:::/TempleOS/Adam/Gr/GrScreen.CPP,ODEsUpdate"$ on a continuous basis to allow real-time simulation. It is intended to provide results good enough for games. It uses a runge-kutta integrator which is a better algorithm than doing it with Euler. @@ -539,7 +539,7 @@ it has a timeout. //how busy the CPU is, what percent of the //last refresh cycle was spent on ODE's //and what the refresh cycle rate was. - start_time=tNP; + start_time=tT; d=1.0/win_actual_refresh; timeout_time=start_time+ (task->last_ode_time/d+0.1)/(last_refresh_ode_time/d+0.1)* @@ -548,15 +548,15 @@ it has a timeout. while (ode!=&task->next_ode) { if (ode->ode_signature==ODE_SIGNATURE_VAL) { t_initial=ode->t; - d=tNP; + d=tT; if (!(ode->flags&ODEF_STARTED)) { ode->base_t=d; ode->flags|=ODEF_STARTED; } d-=ode->base_t+t_initial; t_desired=ode->t_scale*d+t_initial; - if (ode->flags&ODEF_PAUSED || Bt(&task->task_flags,TASKf_PAUSED)) - ode->base_t+=t_desired-ode->t; //Slip + if (ode->flags&ODEF_PAUSED) + ode->base_t+=t_desired-ode->t; //Slip else if (ode->derivative) { ODEState2Internal(ode); MemCpy(ode->initial_state,ode->state_internal,ode->n_internal*sizeof(F64)); @@ -567,7 +567,7 @@ it has a timeout. ode->state_scale[i]=Abs(ode->state_internal[i])+ Abs(ode->DstateDt[i]*ode->h)+ode->tolerance_internal; ODERK5OneStep(ode); - if (tNP>timeout_time) { + if (tT>timeout_time) { ode->base_t+=t_desired-ode->t; //Slip goto ode_done; @@ -608,14 +608,12 @@ ode_done: //This algorithm is probably not stable or very good, but it's something. //Target is 75% of allocated time. - d=(tNP-start_time)/(timeout_time-start_time)-0.75; + d=(tT-start_time)/(timeout_time-start_time)-0.75; ode=task->next_ode; while (ode!=&task->next_ode) { if (ode->ode_signature==ODE_SIGNATURE_VAL && - !(ode->flags&ODEF_PAUSED) && - !Bt(&task->task_flags,TASKf_PAUSED) && - ode->derivative) { + !(ode->flags&ODEF_PAUSED) && ode->derivative) { if (ode->min_tolerance!=ode->max_tolerance) { if (d>0) ode->tolerance_internal*=10.0`d; @@ -626,7 +624,7 @@ ode_done: } ode=ode->next; } - refresh_ode_time+=task->last_ode_time=tNP-start_time; + refresh_ode_time+=task->last_ode_time=tT-start_time; //See $LK,"GrUpdateWins","MN:GrUpdateWins"$() if (task!=Fs) Suspend(task,old_suspend); diff --git a/SparrowOS/Adam/MemRep.CPP b/TempleOS/Adam/MemRep.CPP similarity index 93% rename from SparrowOS/Adam/MemRep.CPP rename to TempleOS/Adam/MemRep.CPP index 78f9317..513dbe8 100644 --- a/SparrowOS/Adam/MemRep.CPP +++ b/TempleOS/Adam/MemRep.CPP @@ -65,14 +65,16 @@ I64 TaskQueSize(CTask *task) I64 BlkDevsSize() { I64 i,result=MSize2(sys_blkdevs); - CBlkDev *bd; - for (i=0;itype==BDT_RAM) - "RAMDsk %C\t:%010X Unused:%010X\n", - bd->drv_let_base,MSize2(bd->RAM_dsk), - UnusedDrvSpace(bd->drv_let_base); - result+=MSize2(bd->dev_id_record); + CBlkDev *bdev; + for (i=0;ibd_signature==BD_SIGNATURE_VAL) { + if (bdev->type==BDT_RAM) + "RAMDsk %C\t:%010X Unused:%010X\n", + bdev->first_drv_let,MSize2(bdev->RAM_dsk), + UnusedDrvSpace(bdev->first_drv_let); + result+=MSize2(bdev->dev_id_record); + } } return result; } @@ -154,7 +156,7 @@ Bool MemRepTask(CTask *task,Bool override_validate=FALSE) k+=TSSSize(c->tss); task1=c->seth_task; do { - if (task1!=adam_task) {//adam task located in OSMain mem + if (task1!=adam_task) {//adam task located in Kernel mem j+=MSize2(task1); m+=MSize2(task1->code_heap); if (task1->data_heap!=task1->code_heap) @@ -199,7 +201,7 @@ public U0 MemRep() "$$FG,BLACK$$Low Memory\t:0000100000$$FG$$\n$$ID,2$$"; u32_ptr=SYS_BOOT_BASE; - "OSMain\t:%010X-%010X\n",*u32_ptr-sizeof(CBinFile),bfh; + "Kernel\t:%010X-%010X\n",*u32_ptr-sizeof(CBinFile),bfh; "VGA\t\t:00000A0000-00000BFFFF\n"; "$$ID,-2$$$$FG,BLACK$$High Memory\t:0000100000-%010X$$FG$$\n", sys_heap_limit; diff --git a/SparrowOS/Adam/Menu.CPP b/TempleOS/Adam/Menu.CPP similarity index 99% rename from SparrowOS/Adam/Menu.CPP rename to TempleOS/Adam/Menu.CPP index 707445e..4a058e9 100644 --- a/SparrowOS/Adam/Menu.CPP +++ b/TempleOS/Adam/Menu.CPP @@ -1,5 +1,5 @@ #help_index "Menus" -#help_file "::/SparrowOS/Doc/Menus" +#help_file "::/TempleOS/Doc/Menus" CMenuEntry *sys_cur_submenu_entry=NULL; diff --git a/TempleOS/Adam/Merge.CPP b/TempleOS/Adam/Merge.CPP new file mode 100644 index 0000000..7fe4318 --- /dev/null +++ b/TempleOS/Adam/Merge.CPP @@ -0,0 +1,91 @@ +#help_index "Utils;Cmd Line (Typically)" + +CDirEntry MCMatchFind(CDirEntry *pattern,CDirEntry *lst) +{ + while (lst) { + if (!StrCmp(pattern->name,lst->name)) + return lst; + lst=lst->next; + } + return NULL; +} + +U0 MergeChkLst(CDirEntry *m1,CDirEntry *m2,I64 *_fuf_flags,I64 *_df_flags) +{ + I64 i; + CDirEntry *tempm2; + while (m1 && !(*_df_flags & DF_ABORT_ALL_FILES)) { + tempm2=MCMatchFind(m1,m2); + if (!tempm2) + "$$FG,BROWN$$Does Not Exist:%s$$FG$$\n",m1->full_name; + else { + if (m1->attr & _ATTR_DIR) + MergeChkLst(m1->sub,tempm2->sub,_fuf_flags,_df_flags); + else { + i=m1->datetime-tempm2->datetime; + if (AbsI64(i)>CDATE_FREQ*2) { //Filedates can shift due to conversion + "" m1->full_name; + NewLine; + if (Bt(_fuf_flags,FUf_DIFF)) { + if (FilesFindMatch(FILENAME_MASK_TXT,m1->full_name)) + Diff(tempm2->full_name,m1->full_name,_df_flags); + } + } + } + } + m1=m1->next; + } +} + +public U0 MergeChk( + U8 *dst_files_find_mask="/TempleOS/*", + U8 *src_files_find_mask="/TempleOS/*", + U8 *fu_flags=NULL) +//"+d"=Do $LK,"Diff","MN:Diff"$() on files +{ + I64 df_flags=0,fuf_flags=0; + CDirEntry *tempm1=NULL,*tempm2=NULL; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (fuf_flags&~(FUG_FILES_FIND|FUF_DIFF)) + throw(EXCEPT_FUF,3); + PrintFWarn("This is based strictly on file dates.\n"); + tempm1=FilesFind(src_files_find_mask,fuf_flags&FUG_FILES_FIND); + tempm2=FilesFind(dst_files_find_mask,fuf_flags&FUG_FILES_FIND); + fuf_flags&=FUF_DIFF; + MergeChkLst(tempm1,tempm2,&fuf_flags,&df_flags); + CDirLstDel(tempm1); + CDirLstDel(tempm2); +} + +#help_index "Utils;Cmd Line (Typically)" + +U0 LstNewFilesLst(CDirEntry *tempm,CDate spdt) +{ + while (tempm) { + if (tempm->datetime>spdt) { + "" tempm->full_name; + NewLine; + } + LstNewFilesLst(tempm->sub,spdt); + tempm=tempm->next; + } +} + +public U0 LstNewFiles(U8 *files_find_mask="/TempleOS/*",CDate spdt=0, + U8 *fu_flags=NULL) +//"+T"=is just text files +{ + I64 fuf_flags=0; + CDirEntry *tempm1=NULL; + if (!spdt) + spdt=sys_compile_time; + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r+T"); + GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); + if (tempm1=FilesFind(files_find_mask,fuf_flags)) { + LstNewFilesLst(tempm1,spdt); + CDirLstDel(tempm1); + } +} + +#help_index "" diff --git a/SparrowOS/Adam/Profiler.CPP b/TempleOS/Adam/Profiler.CPP similarity index 96% rename from SparrowOS/Adam/Profiler.CPP rename to TempleOS/Adam/Profiler.CPP index bce01d9..cc33c63 100644 --- a/SparrowOS/Adam/Profiler.CPP +++ b/TempleOS/Adam/Profiler.CPP @@ -1,9 +1,9 @@ #help_index "Debugging/Profiler;Utils/Profiler;Profiler" -#help_file "::/SparrowOS/Doc/Profiler" +#help_file "::/TempleOS/Doc/Profiler" #define PF_ARRAY_CNT 0x100000 I64 pf_time_start,pf_time_end; -I64 pf_low=0,pf_high=SYS_OSMAIN_END,pf_size=PF_ARRAY_CNT; +I64 pf_low=0,pf_high=SYS_KERNEL_END,pf_size=PF_ARRAY_CNT; I64 *pf_array=NULL; I64 pf_cpu=0; U0 (*fp_chained_timer_routine)(CTask *task)=cpu_structs[pf_cpu].timer_irq_chain; @@ -28,7 +28,7 @@ U0 ProfTimerInt(CTask *task) case PFM_ALL: for (k=0;k<=pf_depth;k++) { if (task==Gs->idle_task) - j=SYS_IDLE_START; + j=SYS_IDLE_PT; else j=TaskCaller(task,k,TRUE); if (pf_ptrattr & _ATTR_DIR) { if (tempm1->sub) { "%S%s\n","ST_SCANNING_DIR",tempm1->full_name; - SUList(tempm1->sub,su_flags,indent_scale_factor); + SULst(tempm1->sub,su_flags,indent_scale_factor); } } else SUFile(tempm1->full_name,su_flags,indent_scale_factor); @@ -55,7 +55,7 @@ public U0 SU(U8 *files_find_mask,I64 su_flags,U8 *fu_flags=NULL,F64 indent_scale //See $LK,"SU Flags","MN:SUF_SINGLE_SPACE"$ I64 fuf_flags=0; GetFFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags); - SUList(FilesFind(files_find_mask,fuf_flags),su_flags,indent_scale_factor); + SULst(FilesFind(files_find_mask,fuf_flags),su_flags,indent_scale_factor); } public U0 S2T(U8 *files_find_mask,U8 *fu_flags=NULL) diff --git a/SparrowOS/Adam/Snd/HDAudio.CPP b/TempleOS/Adam/Snd/HDAudio.CPP similarity index 89% rename from SparrowOS/Adam/Snd/HDAudio.CPP rename to TempleOS/Adam/Snd/HDAudio.CPP index d5be2c4..86194c1 100644 --- a/SparrowOS/Adam/Snd/HDAudio.CPP +++ b/TempleOS/Adam/Snd/HDAudio.CPP @@ -60,7 +60,7 @@ #define VERB_GET_PARAM 0xF0000 #define VERB_CONNECT_SELECT_GET 0xF0100 #define VERB_CONNECT_SELECT_SET 0x70100 -#define VERB_GET_CONNECT_LIST 0xF0200 +#define VERB_GET_CONNECT_LST 0xF0200 #define VERB_PROCESS_STATE_GET 0xF0300 #define VERB_PROCESS_STATE_SET 0x70300 #define VERB_COEFF_INDEX_GET 0xD0000 @@ -148,7 +148,7 @@ #define P_PIN_CAP 0x0C #define P_INPUT_AMP_CAP 0x0D #define P_OUTPUT_AMP_CAP 0x12 -#define P_CONNECT_LIST_LEN 0x0E +#define P_CONNECT_LST_LEN 0x0E #define P_POWER_STATES 0x0F #define P_PROCESSING_CAP 0x10 #define P_GPIO_CNT 0x11 @@ -172,7 +172,7 @@ #define AWT_BEEP_GEN_WIDGET 0x7 #define AWT_VENDOR 0xF #define AWT_NODE 0x10 -DefineListLoad("ST_AUDIO_WIDGET_TYPES", +DefineLstLoad("ST_AUDIO_WIDGET_TYPES", "Output\0Input\0Mixer\0Selector\0Pin Complex\0" "Power Widget\0Vol Knob\0Beep Gen\0 \0 \0 \0 \0 \0 \0 \0Vendor\0Node\0"); @@ -183,6 +183,8 @@ class CHDBufDesc U32 ctrl; }; +#define HD_TONES 8 + class CHDAudioCtrl { U8 *bar; @@ -190,12 +192,12 @@ class CHDAudioCtrl U32 *corb; I64 *rirb; CHDBufDesc *ostr0_bdl,*istr0_bdl; - SND_OUT_CONTAINER *ostr0_buf[2]; + SND_OUT_CONTAINER *ostr0_buf[2],*o_temp_buf; SND_IN_CONTAINER *istr0_buf[2]; CTask *task; I64 waveform; F64 freq,amp; - CSndWaveCtrl *sc; + CSndWaveCtrl *tone_swcs[HD_TONES]; U8 rirb_rp,corb_wp; Bool audio_task_started,in_running,out_running; } *_hda=NULL; @@ -204,11 +206,10 @@ I64 AudioSize() {//$LK,"MemRep","MN:MemRep"$ uses this for Adam Heap I64 result=MSize2(snd_reverb_buf); if (_hda) { - result+=MSize2(_hda); + result+=MSize2(_hda)+MSize2(_hda->o_temp_buf); /* uncached heap - result+=MSize2(_hda->corb)+MSize(_hda->rirb); - result+=MSize2(_hda->ostr0_bdl); - result+=MSize2(_hda->istr0_bdl); + result+=MSize2(_hda->corb)+MSize(_hda->rirb)+ + MSize2(_hda->ostr0_bdl)+MSize2(_hda->istr0_bdl); for (i=0;i<2;i++) result+=MSize2(_hda->ostr0_buf[i]); for (i=0;i<2;i++) @@ -301,7 +302,7 @@ U0 HDTraverse(I64 cad,I64 nid) aud_cap=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_AUDIO_WIDGET_CAP); type=aud_cap>>20&15; if (Bt(&aud_cap,8)) - len=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_CONNECT_LIST_LEN)&127; + len=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_CONNECT_LST_LEN)&127; else len=0; HDWriteCORBSync(cad,nid,VERB_AMPLIFIER_GAIN_SET+0xF07F); //set I/O amp #0 @@ -374,32 +375,54 @@ U0 HDSnd(F64 freq,I64 waveform=WF_SQUARE,F64 amp=1.0) U0 HDFillBuf(SND_OUT_CONTAINER *buf,I64) { - SndWaveFillBuf(_hda->sc,buf,SND_BUF_LEN/SND_OCHANNELS,_hda->freq,_hda->waveform,snd_vol*_hda->amp); + I64 i,size=SND_BUF_LEN*sizeof(SND_OUT_CONTAINER); + if (!_hda->o_temp_buf) + _hda->o_temp_buf=AMAlloc(size); + MemSet(_hda->o_temp_buf,0,size); + for (i=0;itone_swcs[i],_hda->o_temp_buf,SND_BUF_LEN/SND_OCHANNELS,_hda->freq,_hda->waveform,snd_vol*_hda->amp); + MemCpy(buf,_hda->o_temp_buf,size); } U0 HDAudioTaskEndCB() { + I64 i; HDStop(FALSE,TRUE); fp_snd=NULL; - SndWaveCtrlDel(_hda->sc); - _hda->sc=NULL; + for (i=0;itone_swcs[i]); + _hda->tone_swcs[i]=NULL; + } Exit; } +public U0 HDTonesInit() +{ + I64 i; + if (_hda) { + for (i=0;itone_swcs[i]->freq_multiplier=1.0; + _hda->tone_swcs[i]->amp_multiplier=0; + } + _hda->tone_swcs[0]->amp_multiplier=1.0; + } +} U0 HDAudioTask(I64) { //I didn't feel like messing around with PCI interrupts //so this task polls every millisecond to know when to //switch buffers. - I64 next_obuf_trigger=SND_BUF_LEN*sizeof(SND_OUT_CONTAINER)/2, + I64 i,next_obuf_trigger=SND_BUF_LEN*sizeof(SND_OUT_CONTAINER)/2, obuf_rollover=0, next_ibuf_trigger=SND_BUF_LEN*sizeof(SND_IN_CONTAINER), ibuf_rollover=0; U32 *pos_in_obuf=_hda->bar+OSTR0+STRLPIB, *pos_in_ibuf=_hda->bar+ISTR0+STRLPIB; Fs->task_end_cb=&HDAudioTaskEndCB; - _hda->sc=SndWaveCtrlNew; + for (i=0;itone_swcs[i]=SndWaveCtrlNew; + HDTonesInit; _hda->freq=0; Snd(0); fp_snd=&HDSnd; @@ -468,6 +491,7 @@ public U0 HDAudioEnd(Bool rst=TRUE) HDRst; Free(_hda->corb); Free(_hda->rirb); + Free(_hda->o_temp_buf); Free(_hda->ostr0_buf[0]); Free(_hda->ostr0_buf[1]); Free(_hda->istr0_buf[0]); @@ -604,7 +628,24 @@ public Bool HDAudioInit(I64 hd_bus,I64 hd_dev,I64 hd_fun) return FALSE; } -HDAudioInit(0,27,0); +Bool HDAudioScan() +{ + I64 i=-1,j; + while (TRUE) { + j=PCIClassFind(0x040300,++i); + if (j<0) + return FALSE; -//$BK,1$Run $LK,"::/SparrowOS/Adam/Snd/HDCfg.CPP.Z","FI:::/SparrowOS/Adam/Snd/HDCfg.CPP.Z"$.$BK,0$ + //!!! Remove the following line. !!! + if (j.u8[1]!=0x1B) break; + //!!! We got problems with $LK,"0xF0000000","FF:::/TempleOS/Kernel/Memory.CPP,0xF000000"$ !!! + + if (HDAudioInit(j.u8[2],j.u8[1],j.u8[0])) + return TRUE; + } +} + +HDAudioScan; + +//$BK,1$Run $LK-A,"::/TempleOS/Adam/Snd/HDCfg.CPP"$.$BK,0$ #help_index "" diff --git a/SparrowOS/Adam/Snd/HDCfg.CPP b/TempleOS/Adam/Snd/HDCfg.CPP similarity index 88% rename from SparrowOS/Adam/Snd/HDCfg.CPP rename to TempleOS/Adam/Snd/HDCfg.CPP index 5e58840..de233a8 100644 --- a/SparrowOS/Adam/Snd/HDCfg.CPP +++ b/TempleOS/Adam/Snd/HDCfg.CPP @@ -5,8 +5,8 @@ class MyMass:CMass F64 radius; U8 nid,type,num_connects,cur_connect; U32 audio_widget_capabilities; - U8 connect_list[MAX_CONNECTS]; - U8 gain_list[MAX_CONNECTS]; + U8 connect_lst[MAX_CONNECTS]; + U8 gain_lst[MAX_CONNECTS]; U32 pin_capabilities,pin_sense, pcm_size_rates, in_amp_cap,out_amp_cap; @@ -125,8 +125,8 @@ MyMass *PlaceMass(I64 nid) tempm->drag_profile_factor=100.0; tempm->radius=5; tempm->nid=nid; - tempm->gain_list[0]=0x7F; - MemSet(tempm->gain_list+1,0x80,(MAX_CONNECTS-1)*sizeof(U8)); + tempm->gain_lst[0]=0x7F; + MemSet(tempm->gain_lst+1,0x80,(MAX_CONNECTS-1)*sizeof(U8)); QueIns(tempm,ode->last_mass); return tempm; } @@ -163,7 +163,7 @@ I64 FindConnectIndex(MyMass *tempm,I64 nid) { I64 i; for (i=0;inum_connects;i++) - if (tempm->connect_list[i]==nid) + if (tempm->connect_lst[i]==nid) return i; return -1; } @@ -191,12 +191,12 @@ U0 RedoSprings() tempm=ode->next_mass; while (tempm!=&ode->next_mass) { for (i=0;inum_connects;i++) { - if ((k=tempm->connect_list[i]) && + if ((k=tempm->connect_lst[i]) && (tempm1=FindMassByNID(k)) ) { temps=PlaceSpring(tempm,tempm1); switch (tempm->type) { case AWT_MIXER: - if (!(tempm->gain_list[i]&0x80)) { //If not mute + if (!(tempm->gain_lst[i]&0x80)) { //If not mute temps->color=GREEN; temps->constant=100; } @@ -236,28 +236,28 @@ U0 CleanUp() ODEDel(ode); } -U0 HDCfgConnectList(MyMass *tempm,I64 cad,I64 nid) +U0 HDCfgConnectLst(MyMass *tempm,I64 cad,I64 nid) { - I64 i,j,connection_list_len; - j=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_CONNECT_LIST_LEN); - connection_list_len=j&127; + I64 i,j,connection_lst_len; + j=HDWriteCORBSync(cad,nid,VERB_GET_PARAM+P_CONNECT_LST_LEN); + connection_lst_len=j&127; if (j&128) { //Long form? - for (i=0;iconnect_list[tempm->num_connects++]=j.u16[0]; - if (i+1connect_list[tempm->num_connects++]=j.u16[1]; + for (i=0;iconnect_lst[tempm->num_connects++]=j.u16[0]; + if (i+1connect_lst[tempm->num_connects++]=j.u16[1]; } } else { - for (i=0;iconnect_list[tempm->num_connects++]=j.u8[0]; - if (i+1connect_list[tempm->num_connects++]=j.u8[1]; - if (i+2connect_list[tempm->num_connects++]=j.u8[2]; - if (i+3connect_list[tempm->num_connects++]=j.u8[3]; + for (i=0;iconnect_lst[tempm->num_connects++]=j.u8[0]; + if (i+1connect_lst[tempm->num_connects++]=j.u8[1]; + if (i+2connect_lst[tempm->num_connects++]=j.u8[2]; + if (i+3connect_lst[tempm->num_connects++]=j.u8[3]; } } } @@ -294,7 +294,7 @@ U0 HDCfgTraverse(I64 cad,I64 nid) break; } if (Bt(&tempm->audio_widget_capabilities,8)) - HDCfgConnectList(tempm,cad,nid); + HDCfgConnectLst(tempm,cad,nid); } } @@ -335,7 +335,7 @@ U0 HDCfgPopUpInfoTask(MyMass *tempm) if (Bt(&i,7)) "Unsolicited, "; if (Bt(&i,8)) - "Cnt List, "; + "Cnt Lst, "; if (Bt(&i,9)) "Digital, "; if (Bt(&i,10)) @@ -366,14 +366,14 @@ U0 HDCfgPopUpInfoTask(MyMass *tempm) NewLine; - "\n$$FG,RED$$Connection List:$$FG$$\n"; + "\n$$FG,RED$$Connection Lst:$$FG$$\n"; for (i=0;inum_connects;i++) - "%02X,",tempm->connect_list[i]; + "%02X,",tempm->connect_lst[i]; NewLine; - "\n$$FG,RED$$Gain List:$$FG$$\n"; + "\n$$FG,RED$$Gain Lst:$$FG$$\n"; for (i=0;inum_connects;i++) - "%02X,",tempm->gain_list[i]; + "%02X,",tempm->gain_lst[i]; NewLine; switch (tempm->type) { @@ -449,11 +449,11 @@ U0 HDCfgEdLink(MyMass *tempm_out,MyMass *tempm_in) if ((i=FindConnectIndex(tempm_in,tempm_out->nid))>=0) { switch (tempm_in->type) { case AWT_MIXER: - MemSet(tempm_in->gain_list,0x80,sizeof(U8)*MAX_CONNECTS); - tempm_in->gain_list[i]=0x7F; + MemSet(tempm_in->gain_lst,0x80,sizeof(U8)*MAX_CONNECTS); + tempm_in->gain_lst[i]=0x7F; for (j=0;jnum_connects;j++) HDWriteCORBSync(_hda->cad,tempm_in->nid, - VERB_AMPLIFIER_GAIN_SET+0x7000+tempm_in->gain_list[j]+j<<8); + VERB_AMPLIFIER_GAIN_SET+0x7000+tempm_in->gain_lst[j]+j<<8); break; case AWT_INPUT: case AWT_SELECTOR: @@ -472,23 +472,23 @@ U0 HDCfgSave() CDoc *doc=DocNew; I64 i; MyMass *tempm; - DocPutS(doc,"//This file was generated by $$LK,\"::/SparrowOS/Adam/Snd/HDCfg.CPP.Z\",\"FI:::/SparrowOS/Adam/Snd/HDCfg.CPP.Z\"$$\n\n" + DocPutS(doc,"//This file was generated by $$LK,\"::/TempleOS/Adam/Snd/HDCfg.CPP.Z\",\"FI:::/TempleOS/Adam/Snd/HDCfg.CPP\"$$\n\n" "U0 MyHDCfg()\n{\n"); tempm=ode->next_mass; while (tempm!=&ode->next_mass) { DocPrintF(doc," //0x%02X %Z\n",tempm->nid,tempm->type,"ST_AUDIO_WIDGET_TYPES"); if (tempm->num_connects) { - DocPutS(doc," //Connection List:"); + DocPutS(doc," //Connection Lst:"); for (i=0;inum_connects;i++) { if (i==tempm->cur_connect) DocPutS(doc,"*"); - DocPrintF(doc,"0x%02X ",tempm->connect_list[i]); + DocPrintF(doc,"0x%02X ",tempm->connect_lst[i]); } DocPutS(doc,"\n"); if (tempm->type==AWT_MIXER) { - DocPutS(doc," //Gain List:"); + DocPutS(doc," //Gain Lst:"); for (i=0;inum_connects;i++) - DocPrintF(doc,"0x%02X ",tempm->gain_list[i]); + DocPrintF(doc,"0x%02X ",tempm->gain_lst[i]); DocPutS(doc,"\n"); } } @@ -506,7 +506,7 @@ U0 HDCfgSave() tempm->nid); for (i=0;inum_connects;i++) DocPrintF(doc," HDWriteCORBSync(_hda->cad,0x%02X,VERB_AMPLIFIER_GAIN_SET+0x%04X);\n", - tempm->nid,0x7000+tempm->gain_list[i]+i<<8); + tempm->nid,0x7000+tempm->gain_lst[i]+i<<8); break; case AWT_INPUT: if (tempm->disabled) @@ -555,7 +555,7 @@ U0 HDCfg() " Exit(,CH_ESC);" "}" "Edit {" -" Randomize(,CH_NEW_LINE);" +" Randomize(,'\n');" " Options(,CH_SPACE);" "}" ); @@ -612,7 +612,7 @@ U0 HDCfg() HDCfgPopUpInfo(tempm1); tempm1=NULL; break; - case CH_NEW_LINE: + case '\n': HDCfgRandomizeXY; break; case CH_ESC: @@ -631,7 +631,7 @@ hd_done: //Don't goto out of try HDStop(TRUE,FALSE); //stop input CleanUp; MenuPop; - "$$BK,1$$Note: #include \"HOME/HDAudioCfg.CPP.Z\" in your start-up scripts.$$BK,0$$\n"; + "$$BK,1$$Note: #include \"HOME/HDAudioCfg\" in your start-up scripts.$$BK,0$$\n"; } HDCfg; diff --git a/SparrowOS/Adam/Snd/MathAudio.CPP b/TempleOS/Adam/Snd/MathAudio.CPP similarity index 68% rename from SparrowOS/Adam/Snd/MathAudio.CPP rename to TempleOS/Adam/Snd/MathAudio.CPP index 30ea331..f61a5ba 100644 --- a/SparrowOS/Adam/Snd/MathAudio.CPP +++ b/TempleOS/Adam/Snd/MathAudio.CPP @@ -10,6 +10,17 @@ public F64 Saw(F64 t,F64 period) return 0.0; } +public F64 FullSaw(F64 t,F64 period) +{ //1.0 - -1.0 think "Sin" + if (period) { + if (t>=0.0) + return 2.0*(t%period/period)-1.0; + else + return 2.0*(t%period/period)+1.0; + } else + return 0.0; +} + public F64 Caw(F64 t,F64 period) { //1.0 - 0.0 think "(Cos+1)/2" if (period) { @@ -25,9 +36,9 @@ public F64 FullCaw(F64 t,F64 period) { //1.0 - -1.0 think "Cos" if (period) { if (t>=0.0) - return 1.0-2.0*(t%period/period); + return -2.0*(t%period/period)+1.0; else - return -1.0-2.0*(t%period/period); + return -2.0*(t%period/period)-1.0; } else return 1.0; } @@ -90,20 +101,22 @@ F64 SinPhaseCont(F64 last_y,F64 last_dydt, public CSndWaveCtrl *SndWaveCtrlNew(I64 sample_rate=SND_SAMPLE_RATE,I64 sample_bits=SND_SAMPLE_BITS, I64 channels=SND_OCHANNELS,CTask *mem_task=NULL) { - CSndWaveCtrl *sc=CAlloc(sizeof(CSndWaveCtrl),mem_task); - sc->sample_rate=sample_rate; - sc->sample_bits=sample_bits; - sc->channels=channels; - sc->last_dydt=1.0; - return sc; + CSndWaveCtrl *swc=CAlloc(sizeof(CSndWaveCtrl),mem_task); + swc->freq_multiplier=1.0; + swc->amp_multiplier=1.0; + swc->sample_rate=sample_rate; + swc->sample_bits=sample_bits; + swc->channels=channels; + swc->last_dydt=1.0; + return swc; } -public U0 SndWaveCtrlDel(CSndWaveCtrl *sc) +public U0 SndWaveCtrlDel(CSndWaveCtrl *swc) { - Free(sc); + Free(swc); } -public U0 SndWaveFillBuf(CSndWaveCtrl *sc,U8 *buf,I64 num_samples, +public U0 SndWaveAddBuf(CSndWaveCtrl *swc,U8 *buf,I64 num_samples, F64 _freq,I64 _waveform=WF_SQUARE,F64 _amp=1.0,F64 _left=1.0, F64 _right=1.0) { //num_samples is multiplied by channels to get buf_len. @@ -111,16 +124,17 @@ public U0 SndWaveFillBuf(CSndWaveCtrl *sc,U8 *buf,I64 num_samples, //Supports 16,24 and 32 bits I64 reg i,reg j,reg k; F64 a,f,amp,reg phase; - if (!sc) return; - if (!_freq) { - MemSet(buf,0,num_samples*sc->channels*(sc->sample_bits>16 ? sizeof(I32):sizeof(I16))); - sc->last_y=sc->phase=0; - sc->last_dydt=1.0; + if (!swc) return; + _freq*=swc->freq_multiplier; + _amp*=swc->amp_multiplier; + if (!_freq||!_amp) { + swc->last_y=swc->phase=0; + swc->last_dydt=1.0; } else { - phase=sc->phase; + phase=swc->phase; i=0; amp=Min(MAX_I32,MAX_I32*_amp); - f=2*ã/sc->sample_rate*_freq; + f=2*ã/swc->sample_rate*_freq; switch (_waveform) { case WF_NOISE: a=2.0/ã*amp; @@ -129,14 +143,14 @@ public U0 SndWaveFillBuf(CSndWaveCtrl *sc,U8 *buf,I64 num_samples, a=amp/ã; break; case WF_SINE: - phase=SinPhaseCont(sc->last_y,sc->last_dydt,amp,0.0); + phase=SinPhaseCont(swc->last_y,swc->last_dydt,amp,0.0); break; } while (phase<0) phase+=2*ã; while (phase>=2*ã) phase-=2*ã; - num_samples*=sc->channels; + num_samples*=swc->channels; while (i=ã) { - sc->last_y=sc->next_y; - sc->next_y=-amp*Sign(sc->last_y)+.00001; + swc->last_y=swc->next_y; + swc->next_y=-amp*Sign(swc->last_y)+.00001; phase-=ã; } - j=(sc->last_y*(ã-phase)+sc->next_y*phase)/ã; + j=(swc->last_y*(ã-phase)+swc->next_y*phase)/ã; break; case WF_SAWTOOTH: j=a*(phase-ã); @@ -162,39 +176,39 @@ public U0 SndWaveFillBuf(CSndWaveCtrl *sc,U8 *buf,I64 num_samples, case WF_NOISE: if (phase<ã) { if (phaselast_y=sc->next_y; - sc->next_y=a*RandI16/MAX_U16; + swc->last_y=swc->next_y; + swc->next_y=a*RandI16/MAX_U16; } - j=sc->last_y*(ã-phase)+sc->next_y*phase; + j=swc->last_y*(ã-phase)+swc->next_y*phase; } else { if (phase-ãlast_y=sc->next_y; - sc->next_y=a*RandI16/MAX_U16; + swc->last_y=swc->next_y; + swc->next_y=a*RandI16/MAX_U16; } - j=sc->last_y*(2.0*ã-phase)+sc->next_y*(phase-ã); + j=swc->last_y*(2.0*ã-phase)+swc->next_y*(phase-ã); } break; } //left channel k=j*_left; - if (sc->sample_bits==16) { + if (swc->sample_bits==16) { k>>=16; - buf(I16 *)[i++]=k; + buf(I16 *)[i++]+=k; } else { - if (sc->sample_bits==24) + if (swc->sample_bits==24) k&=0xFFFFFF00; - buf(I32 *)[i++]=k; + buf(I32 *)[i++]+=k; } //right channel - if (sc->channels==2) { + if (swc->channels==2) { k=j*_right; - if (sc->sample_bits==16) { + if (swc->sample_bits==16) { k>>=16; - buf(I16 *)[i++]=k; + buf(I16 *)[i++]+=k; } else { - if (sc->sample_bits==24) + if (swc->sample_bits==24) k&=0xFFFFFF00; - buf(I32 *)[i++]=k; + buf(I32 *)[i++]+=k; } } phase+=f; @@ -202,10 +216,10 @@ public U0 SndWaveFillBuf(CSndWaveCtrl *sc,U8 *buf,I64 num_samples, phase-=2*ã; } if (_waveform==WF_SINE) { - sc->last_y=amp*Sin(phase); - sc->last_dydt=Cos(phase); + swc->last_y=amp*Sin(phase); + swc->last_dydt=Cos(phase); } - sc->phase=phase; + swc->phase=phase; } } diff --git a/SparrowOS/Adam/Snd/Music.CPP b/TempleOS/Adam/Snd/Music.CPP similarity index 99% rename from SparrowOS/Adam/Snd/Music.CPP rename to TempleOS/Adam/Snd/Music.CPP index 2035d4b..ea5ac23 100644 --- a/SparrowOS/Adam/Snd/Music.CPP +++ b/TempleOS/Adam/Snd/Music.CPP @@ -191,7 +191,7 @@ public U0 Play(U8 *st,U8 *words=NULL) } else f=0; if (words) { - if (word=ListEntryPt(i++,words)) + if (word=LstEntryPt(i++,words)) if (StrCmp(word," ")) "" word; } diff --git a/SparrowOS/Adam/Snd/Snd.CPP b/TempleOS/Adam/Snd/Snd.CPP similarity index 89% rename from SparrowOS/Adam/Snd/Snd.CPP rename to TempleOS/Adam/Snd/Snd.CPP index 004e196..37bc5df 100644 --- a/SparrowOS/Adam/Snd/Snd.CPP +++ b/TempleOS/Adam/Snd/Snd.CPP @@ -3,6 +3,7 @@ class CSndWaveCtrl { I64 sample_rate,sample_bits,channels; + F64 freq_multiplier,amp_multiplier; F64 phase,last_y,last_dydt,next_y; }; @@ -33,7 +34,7 @@ U0 SndRecord(F64 freq,I64 waveform,F64 amp) CSndData *d; d=ACAlloc(sizeof(CSndData)); d->freq=freq; - d->time_stamp=tNP; + d->time_stamp=tT; d->waveform=waveform; d->amp=amp; QueIns(d,snd_record_root.last); @@ -52,7 +53,7 @@ U0 SndInit() { QueInit(&snd_record_root); snd_record_root.freq=0; - snd_record_root.time_stamp=tNP; + snd_record_root.time_stamp=tT; fp_snd_record=&SndRecord; } @@ -61,4 +62,5 @@ SndInit; #include "MathAudio" #include "Music" #include "SndEffects" +#include "SndFile" #help_index "" diff --git a/SparrowOS/Adam/Snd/SndEffects.CPP b/TempleOS/Adam/Snd/SndEffects.CPP similarity index 83% rename from SparrowOS/Adam/Snd/SndEffects.CPP rename to TempleOS/Adam/Snd/SndEffects.CPP index 2e1e842..074a834 100644 --- a/SparrowOS/Adam/Snd/SndEffects.CPP +++ b/TempleOS/Adam/Snd/SndEffects.CPP @@ -43,7 +43,7 @@ U0 SoundEffectTask(CSoundEffectFrame *ns) } } -public U0 Noise(I64 mS,F64 min_freq,F64 max_freq,I64 waveform=WF_NOISE) +public CTask *Noise(I64 mS,F64 min_freq,F64 max_freq,I64 waveform=WF_NOISE) { CSoundEffectFrame *ns=MAlloc(sizeof(CSoundEffectFrame)); ns->type=SE_NOISE; @@ -52,10 +52,10 @@ public U0 Noise(I64 mS,F64 min_freq,F64 max_freq,I64 waveform=WF_NOISE) ns->freq1=min_freq; ns->freq2=max_freq; music_mute++; - Spawn(&SoundEffectTask,ns,"Noise",Fs); + return Spawn(&SoundEffectTask,ns,"Noise",Fs); } -public U0 Sweep(I64 mS,F64 freq1,F64 freq2,I64 waveform=WF_SINE) +public CTask *Sweep(I64 mS,F64 freq1,F64 freq2,I64 waveform=WF_SINE) { CSoundEffectFrame *ns=MAlloc(sizeof(CSoundEffectFrame)); ns->type=SE_SWEEP; @@ -64,5 +64,5 @@ public U0 Sweep(I64 mS,F64 freq1,F64 freq2,I64 waveform=WF_SINE) ns->freq1=freq1; ns->freq2=freq2; music_mute++; - Spawn(&SoundEffectTask,ns,"Noise",Fs); + return Spawn(&SoundEffectTask,ns,"Noise",Fs); } diff --git a/SparrowOS/Adam/Snd/SndFile.CPP b/TempleOS/Adam/Snd/SndFile.CPP similarity index 96% rename from SparrowOS/Adam/Snd/SndFile.CPP rename to TempleOS/Adam/Snd/SndFile.CPP index dda6132..2947fb3 100644 --- a/SparrowOS/Adam/Snd/SndFile.CPP +++ b/TempleOS/Adam/Snd/SndFile.CPP @@ -28,13 +28,12 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,F64 averaging= //Set reverb_delay to like 0.3 sec and reverb_intensity to like 0.4. { - I64 i,k,cnt,cnt2,level; + I64 i,k,cnt,cnt2,level,file_num; F64 avg,dt; CFileSND *s; - CSndWaveCtrl *sc=SndWaveCtrlNew(SNDFILE_SAMPLE_RATE,16,1); + CSndWaveCtrl *swc=SndWaveCtrlNew(SNDFILE_SAMPLE_RATE,16,1); CSndData *d,*d1; U8 *name,*name2; - I64 file_num; snd_record=FALSE; @@ -59,7 +58,7 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,F64 averaging= d1=d->next; dt=d1->time_stamp-d->time_stamp; cnt2=dt*SNDFILE_SAMPLE_RATE; - SndWaveFillBuf(sc,&s->body[k],cnt2,d->freq,waveform ?waveform:d->waveform,d->amp*normalized_vol); + SndWaveAddBuf(swc,&s->body[k],cnt2,d->freq,waveform ?waveform:d->waveform,d->amp*normalized_vol); k+=cnt2; QueRem(d); Free(d); @@ -120,7 +119,7 @@ public I64 SndFileCreate(U8 *base_filename,F64 normalized_vol=1.0,F64 averaging= Free(name); Free(name2); - SndWaveCtrlDel(sc); + SndWaveCtrlDel(swc); return cnt; } @@ -259,7 +258,7 @@ U0 SndFilePlayTaskEndCB() Exit; } -//See $LK,"::/SparrowOS/Apps/MusicOrgan/Help.TXT.Z","FI:::/SparrowOS/Apps/MusicOrgan/Help.TXT.Z"$ +//See $LK-A,"::/TempleOS/Apps/MusicOrgan/Help.TXT"$ //See $LK,"SndFileCreate","MN:SndFileCreate"$(). public U0 SndFilePlay(U8 *snz_filename) { diff --git a/SparrowOS/Adam/Start.CPP b/TempleOS/Adam/Start.CPP similarity index 54% rename from SparrowOS/Adam/Start.CPP rename to TempleOS/Adam/Start.CPP index bf79e5a..6e34209 100644 --- a/SparrowOS/Adam/Start.CPP +++ b/TempleOS/Adam/Start.CPP @@ -1,21 +1,19 @@ #if snd_dev==SD_HD_AUDIO -#include "::/SparrowOS/Demo/Snd/PolyPhonic.CPP.Z" +#include "::/TempleOS/Demo/Snd/PolyPhonic" #endif U0 Start() { CTask *task; - Type("::/SparrowOS/Doc/Splash.TXT.Z"); - Fs->win_left=TEXT_COLS/4-1; - Fs->win_right=3*TEXT_COLS/4; - Fs->win_top=TEXT_ROWS/4-3; - TaskDerivedValsUpdate; + Type("::/TempleOS/Doc/Splash.TXT"); + SetWinHorz(TEXT_COLS/4-1,3*TEXT_COLS/4); + SetWinVert(TEXT_ROWS/4-3,Fs->win_bottom); LBts(&Fs->display_flags,DISPLAYf_WIN_ON_TOP); "$$FG,GREEN$$Tip of day$$FG$$\n"; TipOfDay; "$$FG,GREEN$$$$FG$$ to exit.\n"; #if snd_dev==SD_HD_AUDIO - PopUp("#include \"::/SparrowOS/Demo/Snd/SndScope.CPP.Z\";",NULL,&task); + PopUp("#include \"::/TempleOS/Demo/Snd/SndScope\";",NULL,&task); TaskWait(task); WinToTop; PolyPhonic; diff --git a/SparrowOS/Adam/TaskSettings.CPP b/TempleOS/Adam/TaskSettings.CPP similarity index 100% rename from SparrowOS/Adam/TaskSettings.CPP rename to TempleOS/Adam/TaskSettings.CPP diff --git a/SparrowOS/Adam/ToHtml.CPP b/TempleOS/Adam/ToHtml.CPP similarity index 92% rename from SparrowOS/Adam/ToHtml.CPP rename to TempleOS/Adam/ToHtml.CPP index 119f2ee..5b2274c 100644 --- a/SparrowOS/Adam/ToHtml.CPP +++ b/TempleOS/Adam/ToHtml.CPP @@ -1,6 +1,6 @@ #help_index "Utils;Cmd Line (Typically);Doc/Html" -//See $LK,"::/SparrowOS/Doc/Acknowledgements.TXT.Z","FI:::/SparrowOS/Doc/Acknowledgements.TXT.Z"$ (12). +//See $LK-A,"::/TempleOS/Doc/Acknowledgements.TXT"$ (12). U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) { @@ -15,6 +15,12 @@ U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) } while (ch=*st++) { switch (ch) { + case '\t': + do { + DocPutKey(doc,CH_SPACE,0); + *_col=*_col+1; + } while (*_col&7); + break; case '&': DocPutS(doc,"&"); *_col=*_col+1; @@ -31,16 +37,6 @@ U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) DocPutS(doc,"""); *_col=*_col+1; break; - case CH_TAB: - do { - DocPutKey(doc,CH_SPACE,0); - *_col=*_col+1; - } while (*_col&7); - break; - case CH_SHIFT_SPACE: - DocPutS(doc," "); - *_col=*_col+1; - break; case 'ã': DocPutS(doc,"pi"); *_col=*_col+1; @@ -65,21 +61,28 @@ U0 HtmlPutS(CDoc *doc,I64 c,I64 *_old_c,U8 *st,I64 *_col,U8 *style_bitmap=NULL) DocPutS(doc,"u"); *_col=*_col+1; break; + case CH_SHIFT_SPACE: + DocPutS(doc," "); + *_col=*_col+1; + break; default: - DocPutKey(doc,ch,0); + if (CH_SPACE<=ch<0x7F || ch=='\n') + DocPutKey(doc,ch,0); + else + DocPutS(doc,"."); *_col=*_col+1; } } } U8 *TSLinkCvt2(U8 *filename,I64 line_num) -{ // ::/SparrowOS/ --> http://www.sparrowos.com/Wb/ +{ // ::/TempleOS/ --> http://www.templeos.org/Wb/ // Make your own LinkCvt routine U8 *result=NULL,*st; if (filename) { st=ChgExt(filename,"html"); - if (st && StrLen(st)>13 && !StrNCmp(st+1,":/SparrowOS/",12)) - result=MSPrintF("http://www.sparrowos.com/Wb/%s#l%d",st+13,line_num); + if (st && StrLen(st)>12 && !StrNCmp(st+1,":/TempleOS/",11)) + result=MSPrintF("http://www.templeos.org/Wb/%s#l%d",st+12,line_num); Free(st); } return result; @@ -92,7 +95,7 @@ U8 *TSLinkCvt1(U8 *link_st) U8 *result=NULL,*filename,*pattern; I64 i,num; if (link_st) { - switch (i=EdLinkCvt(link_st,&filename,&pattern,&num,0)) { + switch (i=EdLinkCvt(link_st,&filename,&pattern,&num)) { case LK_FILE_LINE: case LK_PLAIN_LINE: case LK_FILE: @@ -130,7 +133,7 @@ public CDoc *Doc2Html(CDoc *doc_in, CDocSettings *s; I64 i,y,old_y=MIN_I64,cur_u8_attr,col,old_c=-1; U32 *hl,*src; - U8 st_2[2],*link_st,*style_bitmap=CAlloc(256/8); + U8 *st,st_2[2],*link_st,*style_bitmap=CAlloc(256/8); CBGR p[16]; GetVGAPalette4(p); CDoc *doc_out=DocNew; @@ -152,7 +155,7 @@ public CDoc *Doc2Html(CDoc *doc_in, "\n" "\n" "%s" - "\n" + "\n" "